Delphi 10 Seattle FireDAC 連接池配置過程

一直想用Delphi 10 Seattle FireDAC 寫個中間層,當然不得不解決連接池的問題。

網上搜到一個只有一點代碼的例子,沒有配置步驟,研究了半天的英文幫助文檔,總算試驗成功,給苦無資料的大家分享:

1、先建一個數據庫的文本參數文件,文件名FDDrivers.ini,存放在執行文件所在目錄,內容以Oracle爲例如下:

[Oracle_Pool]
DriverID=Ora
Database=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.1.220)(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl)))
User_Name=test
Password=test
CharacterSet=UTF8
Pooled=true

這裏Pooled=true是不能少的,是連接池裏的關鍵設置哦

2、在數據模塊裏,放置FDManager1控件,並將其ConnectionDefFileName指向FDDrivers.ini文件,如D:\FDmanager\Win32\Debug\FDDrivers.ini,並把Active設爲true

3、在數據模塊裏裏,放置FDPhysOracleDriverLink,並將其VenderLib指向oracle的庫文件D:\FDmanager\Win32\Debug\oci.dll,這裏要說明的是,需要四個庫文件:

oci.dll,oraocci11.dll,,oraociei11.dll,orasql11.dll,這些文件全部都放在執行文件所在目錄。

4、還要放置FDGUIxWaitCursor在數據模塊裏

5、放置數據庫連接控件FDConnection,在數據模塊裏,並將其ConnectionDefName指定爲FDDrivers.ini文件中的第一行中的名稱,可以下拉選的

6、這樣設置好後,在窗口代碼裏,就可以按如下調用:

procedure Tfrm1.Button2Click(Sender: TObject);
begin
 if not dm.FDConnection1.Connected then
   dm.FDConnection1.Connected := True;
   with dm.FDQuery2 do
   begin
       close;
       sql.Clear;
       sql.Add('select count(*) num from base_tab ');
       open;
   end;
   Label2.Text:=dm.FDQuery2.FieldByName('num').AsString;
    dm.FDConnection1.Connected := False;

end;

注意,這裏的dm.FDConnection1.Connected := True就是在連接池裏獲取一個連接,而dm.FDConnection1.Connected := False;則是歸還一個連接,不是斷開,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章