Hört sich so sinnvoll an wie "Zwei Exceptions auf einmal"
Ich habe bislang dbExpress genutzt, jetzt möchte ich auf FireDAC wechseln. Folgendes Problem, vereinfacht und in Quellcode-Form:
Delphi-Quellcode:
connection: TSQLConnection;
outerResultSet: TDataSet;
innerResultSet: TDataSet;
connection.Execute(
'SELECT * FROM someTable',
nil,
outerResultSet
);
try
outerResultSet.First();
while not outerResultSet.eof do begin
// Tue Dinge mit Tupeln aus outerResultSet
connection.Execute(
'SELECT * FROM someOtherTable',
nil,
innerResultSet
);
try
// Tue Dinge mit den Tupeln aus innerResultSet...
finally
innerResultSet.Free();
end;
// Tue abschließende Dinge mit Tupeln aus outerResultSet
outerResultSet.Next();
end;
finally
outerResultSet.Free()
end;
Die Execute-Methode von TSQLConnection war immer so freundlich, mir ein komplett neues TDataSet anzulegen mit dem ich dann so lange arbeiten konnte, wie ich es gebraucht habe.
Jetzt frage ich mich, wie ich das in FireDAC umsetzen soll. Ich finde keine Methode auf Connection oder
Query-Objekten, die mir ein isoliertes TDataSet geben.
Für den obigen Fall bräuchte ich zwei separate
Query-Objekte, das fiele mir spontan ein, finde ich aber hässlich. Hinter vorgehaltener Hand erzählt man sich von "MemTables" in FireDAC. Bringt mich das weiter? Einmal eine komplette Kopie des ResultSets (wird schon nicht zu groß) in den Speicher legen (wie das outerResultSet)?