本文整理自网络,侵删。
使用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 窗体的位置和高宽度-tform:letf、top、width、height、clientwidth、clientheight
Delphi中strtodatetime函数tformatsettings参数的使用
更多相关阅读请进入《Delphi》频道 >>