MySQL pooling hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

MySQL pooling hatası

Mesaj gönderen mepc »

Merhaba
MySQL veritabanına bağlanırken pooling yapmak istiyorum. Parametreleri aşağıdaki gibi oluşturarak, FDManagerin connection listesine ekliyorum, ancak bağlantıyı sağlamıyor. Aşağıdaki hatayı veriyor. Eksik olan parametrenin ne olduğunu bulamadım. Her şey doğru gözüküyor. Ama aşağıdaki hata mesajını alıyorum.
[FireDAC][Comp][Clnt]-507. Connection [connect: TFDConnection] cannot be pooled. Possible reason: connection definition is not in the FDManager.ConnectionDefs list or TFDConnection.Params has additional parameters.
Kullandığım kod
var
oParams : TStringList;
begin
// Use pooled connections for FireDAC. See: http://docwiki.embarcadero.com/RADStudi ... _(FireDAC)
oParams := TStringList.Create;
try
oParams.Add('DriverID=MySQL');
oParams.Add('Port=3306') ;
oParams.Add('Server=178.xxx.xxx.');
oParams.Add('User_Name=username');
oParams.Add('Password=password');
oParams.Add('Database=abc');
oParams.Add('Pooled=True');
oParams.Add('POOL_MaximumItems=100');
oParams.Add('CharacterSet=utf8');
oParams.Add('POOL_CleanupTimeout=36000');
oParams.Add('POOL_ExpireTimeout=600000');
FDManager1.Close;
FDManager1.AddConnectionDef('Test','MySQL',oParams,false);
FDManager1.active:=true;
finally
oParams.Free;
end;
connect.ConnectionDefName := 'Test';
connect.Connected := True;
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Re: MySQL pooling hatası

Mesaj gönderen mepc »

Uğraşarak sorunu çözdüm.
Connectiondef oluşturuken gönderilen parametrelerin sırasına dikkat etmek gerekiyormuş. Doğru sıralama aşağıdaki şekilde (FDConnection bileşenindeki sıralamayla aynı olması gerekiyor)

var
oParams:TStringList;
begin
oParams := TStringList.Create;
try
oParams.Add('DriverID=MySQL');
oParams.Add('Pooled=true');
oParams.Add('Database=....');
oParams.Add('User_Name=....');
oParams.Add('Password=...');
oParams.Add('Server=...');
oParams.Add('Port=3306') ;
oParams.Add('UseSSL=True') ;
oParams.Add('POOL_MaximumItems=100');
oParams.Add('CharacterSet=utf8');
FDManager1.Close;
FDManager1.AddConnectionDef('Test','MySQL',oParams,false);
FDManager1.active:=true;
finally
oParams.Free;
end;
Bilgi paylaşıldıkça güzeldir.
Cevapla