我已经使用firedac创建了一个池连接,将FDServerManager FDWaitCursir和FDphysMySQLDriverlink放在数据模块上,并且在DataModuleCreate上我编写了一个方法来读取名为conn.ini的文件
procedure TDataModule2.DataModuleCreate(Sender: TObject);
var
oParams : TStringList;
cdir, fname : string;
fs : TFileStream;
sr : tStreamReader;
begin
cdir := GetCurrentDir;
fname := 'conn.ini';
try
fs := TFileStream.Create(cdir+TPath.DirectorySeparatorChar+fname, fmOpenRead);
try
sr := tStreamReader.Create(fs, TEncoding.UTF8);
try
oParams := TStringList.Create;
while not sr.EndOfStream do
oParams.Add(sr.ReadLine);
FDManager1.AddConnectionDef('MySQL_pooled', 'MySQL', oParams);
finally
sr.Free;
end;
finally
fs.Free
end;
except
on E: EFileStreamError do
showmessage('file not found '+e.Message);
end;
end;
.ini 文件
[MySQL_pooled]
Server=localhost
User_Name=franz
Password=franz
Database=mydb
Pooled=false
POOL_MaximumItems=100
我准备了一份用于测试连接的表格
procedure TForm1.bnConnectClick(Sender: TObject);
begin
DataModule2.FDConnection1.ConnectionDefName := 'MySQL_pooled';
DataModule2.FDConnection1.Connected := true;
ShowMessage('OK')
end;
但我不知道为什么。有什么建议吗?
看来你没有破坏oParams。