Delphi 10 FireDac 连接池设置


本文整理自网络,侵删。

 
使用FireDac 连接  MySQL数据库,参考官方帮助文档 

http://docwiki.embarcadero.com/RADStudio/XE7/en/Multithreading_(FireDAC),

实现过程如下:

1、在DataModule界面上 放置一个  FDManager 控件;

2、在 Create 事件中:

procedure TDM.DataModuleCreate(Sender: TObject);
 
var
 
    oParams: TStrings;
 
begin 
  //*****初始化*****
  oParams := TStringList.Create;
  //********* 连接池
    oParams.Add('DriverID=MySQL');
    oParams.Add('CharacterSet=utf8');
    oParams.Add('Server=localhost');
    oParams.Add('Port=3306');
    oParams.Add('Database=dbname');
    oParams.Add('User_Name=dbuser');
    oParams.Add('Password=password');
    //  毫秒
    oParams.Add('POOL_CleanupTimeout=36000');
    //  毫秒
    oParams.Add('POOL_ExpireTimeout=600000');
    //最多连接数
    oParams.Add('POOL_MaximumItems=60');
    oParams.Add('Pooled=True');
    //*******
    FDManager1.Close;
    FDManager1.AddConnectionDef('MySQL_Pooled','MySQL',oParams);
    FDManager1.Active := True;
end;


3、在查询使用中,动态生成FDConnection,设置Connected为true 就是  从连接池中取一个连接;具体代码如下:

function QueryData( SQLStr:String):String;
var
  fdqry1 : TFDQuery;
  mConn: TFDConnection;
begin
    Try
    //***动态创建,用完释放;
    mConn := TFDConnection.Create(nil);
    mConn.ConnectionDefName := 'MySQL_Pooled';
    try
      fdqry1 := TFDQuery.Create(nil);
      fdqry1.Close;
      fdqry1.Connection := mConn;
      mConn.Connected := true;
      fdqry1.SQL.Clear;
      fdqry1.SQL.Add(SQLStr);
      fdqry1.Open();
      result:='{result:"OK",DataSet:'+DataSetToJSONStr2(fdqry1)+'}';
    finally
      fdqry1.Free;
      mConn.Free;
    end;
 
  Except
    On E:Exception do
    begin
      result:='{Result:"失败 Error:'+e.message+'"}';   
    end;
  End;
 
end;
4、在关闭时候,释放创建的对象
procedure TDM.DataModuleDestroy(Sender: TObject);
begin 
   oParams.Free;
end;

――――――――――――――――

原文链接:https://blog.csdn.net/jhzhao2001/article/details/79059062

相关阅读 >>

Delphi 使用firedac的tfdscript组件执行文件中描述的sql语句

Delphi 内存管理[4]

Delphi模拟文件拖拽

Delphi�⒆执�传入到windows目前窗口cursor所在位置

Delphi如何获取系统服务(即service服务程序)列表

Delphi图片上写水印文字函数

Delphi 如何取得系统中的桌面的路径

Delphi调用百度语音识别服务

Delphi 图像自动调整显示

Delphi 多重循环

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...