Ich benutze die Zeos Komponenten für
SQL Abfragen.
SQL Statement soll in einer Funktion ausgeführt und das Ergebnis als TQuery weiter gegeben werden.
Also so in etwa:
Delphi-Quellcode:
function SQLSelect(SQLtxt: String):TZReadOnlyQuery;
var xQuery : TZReadOnlyQuery;
begin
xQuery := TZReadOnlyQuery.Create(nil);
xQuery.Connection := ZConnection1;
xQuery.SQL.Clear;
xQuery.SQL.Add(SQLtxt);
if ZConnection1.Connected then
begin
xQuery.Open;
xQuery.Active := True;
end else ShowMessage('Keine Datenbankverbindung!');
Result := xQuery;
end;
So bläht sich aber das
Query mit jeder neuen
SQL Abfrage auf und dann ist der Speicher voll.
Das Aufblähen könnte ich mit
FreeAndNil(xQuery);
am Ende der Funktion beheben.
Das Problem ist nur: der Rückgabewert ist dann auch immer leer.
Array, Strings, etc. als Rückgabewert wollte ich eigentlich nicht nutzen, da die Daten dann nochmal aus der
Query in das Array, etc. geschrieben werden müssen. Ist doch irgendwie doppelt-gemoppelt.