ADOquery实现动态连接和切换不同数据库功能ConnectionString,ADOQUERY

明生:最近在写连接池时发现,如果想动态切换MSSQL和ACCESS或MYSQL时,不能直接改代码。也不能直接操作ConnectionString ,而是应该将连接文件以文档类型保存连接字符串,每次创建一个动态数据库连接时就让他从此处取值即可。这就是这一篇文章的开始。

如何动态创建数据库连接池。。一步一步的来操作

首先先看一个实例。

var
 abcxd_dbconn : TadoConnection;
begin
 abcxd_dbconn := TadoConnection.Create(Self);
 abcxd_dbconn.Name := 'con'+ IntToStr(TDSSessionManager.GetThreadSession.Id);
 abcxd_dbconn.LoginPrompt := false;
 abcxd_dbconn.ConnectionString := 'FILE NAME=' + extractfilepath(application.ExeName) + 'connect.udl';
end;

注意当中的connect.udl

第一:创建一个函数

var
  dbconn : TadoConnection;

 

第二:初始化此函数

  dbconn := TadoConnection.Create(Self);

当中的SELF可以为NIL。。。。

第三:防止已有CONN。

dbconn.Name := 'con'+ IntToStr(TDSSessionManager.GetThreadSession.Id);
dbconn.LoginPrompt := false;

当中的TDSSessionManager.GetThreadSession.Id, 是用于让他自动产生一个随机名称

第四:连接

abcxd_dbconn.ConnectionString := 'FILE NAME=' + extractfilepath(application.ExeName) + 'connect.udl';

着重读一下connect.udl,他是一个DELPHI自带的动态设置连接数据库的组件,在你的程序当中新建以此为命名的文件,双击打开即可设置连接。如果未有弹出。请以文本方式打开后参照下面的字符串修改。

[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Password=524400;Persist Security Info=True;User ID=sa;Initial Catalog=datasnapA;Data Source=C2T1P1VXLKER83V
此项目被张贴在未分类 。书签的 permalink

发表评论

电子邮件地址不会被公开。 必填项已用*标注