ich nutze eine PostgreSQL-Datenbank und habe damit ein Problem mit der TPQConnection. Sie bzw. das TSQLQuery erstellt eine zweite Verbindung, die beim Disconnecten nicht mit frei gegeben wird. Also am besten erklärt mit Code:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
if ZConnection1.Connected then begin
ZQuery1.Active:=False;
ZConnection1.Connected:=False;
end else begin
ZConnection1.Connected:=True;
ZQuery1.Active:=True;
end;
end;
Stelle ich den Code auf die Lazarus-Komponenten um, wird bei jedem TSQLQuery-aktivieren immer eine Verbindung mehr erstellt.
Ausprobiert habe ich nur die TPQConnection zu connecten und disconnecten, dies geht (1 Verbindung wird erstellt, 1 Verbindung wird freigegeben). Sobald ich aber TSQLQuery aktiviere, wird eine 2. Verbindung erstellt, die beim deaktivieren nicht wieder freigegeben wird.
folgendes habe ich ausprobiert
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
if PQConnection1.Connected then begin
SQLQuery1.Active:=False;
SQLQuery1.Close;
SQLQuery1.Destroy;
SQLQuery1.Free;
PQConnection1.CloseDataSets;
PQConnection1.CloseTransactions;
PQConnection1.Connected:=False;
PQConnection1.Close;
PQConnection1.Free;
end else begin
PQConnection1.Connected:=True;
SQLQuery1.Active:=True;
end;
end;
Hat jemand eine Idee, wie ich die Verbindung weg bekommen könnte?
Wie gesagt, das gleiche mit Zeos funktioniert (bin ja ein großer Fan von Zeos, würde aber gern auch die Alternativen verstehen). Warum das Ganze, da ich sonst Probleme mit einem BackUp habe, siehe mein Post im PG-Forum
[Edit] habe mal die Frage im englischen Forum gestellt: http://forum.lazarus.freepascal.org/ind ... 080.0.html