C++ ADO的数据库连接池..

时间:2022-09-19 23:05:16

此连接池用于管理数据库的多个连接,主要思想如下:

1)按照传入的参数起N个连接来连接数据库(参数中有最小连接数N,最大连接数M)。

2)建立一个空闲队列(初始化的N个连接放到空闲队列),一个使用队列来管理,使用的时候重空闲队列抓取一个连接,丢到使用队列,

如果空闲队列没有可用连接,并且连接数小于允许的最大连接数(<M)则创建一个新的连接,否则等待。

3)起一个守护线程,发现用过的连接,则使用队列中移除,添加到空闲队列,无效的链接则删除。

 

代码如下,

首先是头文件,因为导出的是DLL,文件中的RFIDAPI定义如下

#ifdef _USRDLL
#define RFIDAPI _declspec(dllexport)
#else
#define RFIDAPI _declspec(dllimport)

 

下面是实现文件,

为了使用方便,使用的时候,自己定义个类来初始化连接以及所使用的接口,

 

例如,,定义个DBinterface的类

头文件中这样写

实现文件如下

 

这样把头文件包含到工程,,

调用InItDBConnPool初始化连接池

然后就可以直接使用接口了