Die
Query kann so vom DataSnap (Result + OwningResults) freigegeben werden,
aber wer gibt die Connection frei?
Entweder du leitest die
Query ab und baust die Connection dort ein, oder du benutzt die
Query als Owner.
Delphi-Quellcode:
Result := TFDQuery.Create(nil);
try
oConn := TFDConnection.Create(Result);
oConn.ConnectionDefName := ZMIConnectionDefName;
Result.Connection := oConn;
Result.FetchOptions.AutoFetchAll := afAll;
Result.SQL.Text := 'SELECT * FROM BAU WHERE BAUNR = :BAUNR';
Result.Params[0].AsInteger := BauNr;
Result.Open;
except
Result.Free; // freigeben, wenn es beim Erstellen und vorallem im Open Probleme gab. (Tabelle/Feld nicht gefunden)
raise;
end;
Und natürlich darf die
Query am Ende nicht freigegeben oder geschlossen werden, denn es soll ja deren Inhalt am Ende noch übertragen werden und dafür mit die
Query existieren und vorallem auch Daten enthalten.