Delphi XE FireDac 连接池
在开发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;
Delphi XE FireDac 连接池的更多相关文章
- Delphi 的 FireDAC 连接管理与配置过程
Delphi 的 FireDAC 连接管理与配置过程: 使用 FireDAC 技术连接 数据库,主要是使用 TFDConnection ,其中有一参数是选择 ConnectionDefFile. ...
- 三句话搞定FireDAC连接池
form上拖入: FDManager1: TFDManager; FDConnection1: TFDConnection; //初始化连接池procedure TForm1.InitDBPool;b ...
- FIREDAC FDConnection 连接池 连接串
一.FDConnection 连接池 http://docs.embarcadero.com/products/rad_studio/firedac/frames.html?frmname=topic ...
- Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)
Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...
- Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决
Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...
- Firedac 数据连接池的应用
procedure TForm2.Button1Click(Sender: TObject); begin if not FDConnection1.Connected then FDConnecti ...
- 使用 TFDConnection 的 pooled 连接池
从开始看到这个属性,就一直认为他可以提供一个连接池管理功能, 苦于文档资料太少, 甚至在帮助中对该属性的使用都没有任何介绍,如果你搜索百度,也会发现基本没资料. 最后终于在其官方网站看到了其完整相关的 ...
- DataSnap中连接池的应用
当开发人员开始创建Delphi的DataSnap应用时很常见的数据库连接定义方式是每个数据模块建立一个连接.这样做将产生大量的数据库连接,并产生很多问题.从Delphi XE开始,EMB提供了Sess ...
- Delphi XE 10 跨平台三层数据库应用教程
Delphi XE 10 跨平台三层数据库应用教程 前言: Delphi XE 开始越来越庞大,比经典的Delphi7难用,但依然是目前所有跨平台开发工具中开发效率最高.最容易上手的,其快速设计RAD ...
随机推荐
- Python自定义任务发邮件提醒
前言 在工作中,有时会有一些定期需要执行的任务或在将来某一天需要执行的任务,为避免疏漏,设计个小工具,发邮件提醒自己去处理. 方案简介 1.建立一个Excel文件,里面定义好待提醒的任务 2.建立一个 ...
- SpringBoot学习- 4、整合JWT
SpringBoot学习足迹 1.Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于 ...
- python求极值点(波峰波谷)
python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...
- 阿里云linux挂载云盘
阿里云购买的第2块云盘默认是不自动挂载的,需要手动配置挂载上. 1.查看SSD云盘 sudo fdisk -l 可以看到SSD系统已经识别为/dev/vdb 2.格式化云盘 sudo mkfs.ext ...
- [CF276B] Little Girl and Game
[CF276B] Description 给定字符串 \(S\) ,两人轮流,每次从字符串中任意取出一个字符并从原串中删去.如果某人某次操作前,串种剩余的字符集合经过排列可以得到回文串,那么这个人就胜 ...
- input设置为disabled,表单无法提交后台解决方法
<input name="country" id="country" size=12 value="disabled提交时得不到该值 " ...
- Harmonic Number (II) 数学找规律
I was trying to solve problem '1234 - Harmonic Number', I wrote the following code long long H( int ...
- 使用imread()函数读取图片的六种正确姿势
OpenCV实践之路——使用imread()函数读取图片的六种正确姿势 opencv里的argv[1]指向的文件在哪里 测试 #include "opencv2/highgui/highgu ...
- Quartus ii 初学遇到的问题以及解决
第一次下载和运行Quartus后,发现几个问题: 下载时安装易出现问题. 解决:在官网下载后,在开始破解: 运行程序出现警告:RTL波形时出现问题? 解决:testbench程序出错. 问题3:在视频 ...
- 洛谷 1219:八皇后 (位运算 & DFS)
题目链接: https://www.luogu.org/problem/show?pid=1219#sub row:受上面的皇后通过列控制的位置 ld:受上面的皇后通过从右至左的斜对角线控制的位置 r ...