从其它平台迁移而来


之前就想搞个数据连接池,结果太麻烦就放弃了,不想却在TFDConnection中看到了Pooled属性,就一路挖了下来,还真就是那么回事!

TFDManager

之前只知道,放上TFDManager控件后,什么都不用做,就可以在别的单元引用该单元后直接连接到TFDConnection控件了;现在,数据连接池还是要通过TFDManager来实现。

设置数据连接池参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
//指定动态库
FDPhysMySQLDriverLink.VendorLib := 'libmysql.dll';
//设置连接参数
with FDManager.ConnectionDefs.AddConnectionDef do
begin
  Name := 'MySQL_Conn';
  Params.DriverID := 'MySQL';
  Params.Add('CharacterSet=csUtf8mb4');
  Params.Add('Server=127.0.0.1');
  Params.Add('Port=3306');
  Params.Database := 'test';
  Params.UserName := 'root';
  Params.Password := '123456';
  Params.PoolMaximumItems := 10;
  Params.Pooled := True;
end;

以上是以MySQL为例,其它数据库参照即可。

打开连接池

1
FDManager.Open;

获取连接

1
2
FDConnection.ConnectionDefName := 'MySQL_Conn';
FDConnection.Connected := True;

归还连接

FDConnection直接放到窗体上,或动态创建,写上如下代码即可,无需在设计器里设置任何东西。

1
FDConnection.Connected := False;

关闭连接池

1
FDManager.Close;