在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在开发Datasnap三层中,使用FireDac 连接 MSSQL数据库。 实现过程如下: 1、在ServerMethods 单元中放入 FDManager、FDPhysMSSQLDriverLink1、FDGUIxWaitCursor1等控件。 2、自定义过程: private var oParams: TStrings;
procedure TSrvMethods.SetupFDManager; //加载数据库链接信息。 begin //*****初始化***** oParams := TStringList.Create; //********* 连接池 oParams.Add('DriverID=MSSQL'); //oParams.Add('CharacterSet=utf8'); oParams.Add('Server=192.168.1.199'); //oParams.Add('Port=3306'); oParams.Add('Database=DSCSYS'); oParams.Add('User_Name=sa'); oParams.Add('Password='); // 毫秒 oParams.Add('POOL_CleanupTimeout=36000'); // 毫秒 oParams.Add('POOL_ExpireTimeout=600000'); //最多连接数 oParams.Add('POOL_MaximumItems=60'); oParams.Add('Pooled=True'); //******* FDManager.Close; FDManager.AddConnectionDef('MSSQL_DSCSYS', 'MSSQL', oParams); try FDManager.Active := True; except on E: Exception do begin frmMain.Log.Error(e.Message, 'Error'); end; end; end; 3、在 Create 事件中: procedure TSrvMethods.DSServerModuleCreate(Sender: TObject); begin SetupFDManager; // 加载数据库链接 end; 4、在查询使用中,动态生成FDConnection,设置Connected为true 就是 从连接池中取一个连接;具体代码如下 function TSrvMethods.QueryData(SQLStr: string): string; var fdqry1: TFDQuery; mConn: TFDConnection; begin try //***动态创建,用完释放; mConn := TFDConnection.Create(nil); mConn.ConnectionDefName := 'MSSQL_Conn'; mConn.Connected := true; fdqry1 := TFDQuery.Create(nil); try fdqry1.Close; fdqry1.Connection := mConn; fdqry1.SQL.Clear; fdqry1.SQL.Add(SQLStr); fdqry1.Open(); result := '{result:"OK",DataSet:}'; frmMain.Log.Debug('ok', 'debug'); finally fdqry1.Free; mConn.Free; end; except on E: Exception do begin result := '{Result:"失败 Error:' + e.message + '"}'; frmMain.Log.Debug('NOok', 'debug'); end; end; end; 5、在关闭时候,释放创建的对象 procedure TSrvMethods.DSServerModuleDestroy(Sender: TObject); begin oParams.Free; end;
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论