Hallo zusammen,
da habe ich ja richtig was losgetreten
Ich bin trotzdem noch nicht so richtig weiter; ich erläutere noch mal ein wenig mehr, worum´s geht.
Die besagte Klasse, in der sich die Funktion für die
SQL-Abfrage befindet, kapselt den Zugirff auf eine Datenbank eines Dritt-Softwareherstellers. In dem construct wird die ADOConnection und ADOQuery dynamisch erzeugt/created.
Die Hauptroutine soll im Anschluss an den Aufruf der Funktion "getSentItems" der Klasse das Rückgabeergebnis in eine
CSV schreiben und ruft eine eigene, nicht in der Klasse enthaltene, Funktion auf:
Delphi-Quellcode:
externalsoftware:=Texternalsoftware.Create();
if (externalsoftware.connected) then begin
Items:=externalsoftware.getSentItems();
SaveToCSV(Items, <Dateiname>);
end;
externalsoftware.Free;
Wenn ich jetzt den Rückgabewert von getSentItems vom Typ TDataSet deklariere (TCustomADODataset ebenfalls schon getestet), sagt er mir in SaveToCSV "Operation bei geschlossener Datenmenge nicht ausführbar"; ein .Open geht auch nicht, weil die temporäre Tabelle, aus der die Daten stammen, am Ende von getSentItems gelöscht wird.
Im Prinzip ist das ja alles noch das Falsche - ich brauche ein Objekt, das nur die Ergebnismenge aufnimmt, aber keinerlei Verbindungsdaten o.ä. und hatte gehofft, daß Delphi da was passendes im "Gepäck" hat.
Hat da noch jemand eine Idee ?
lg
Sebastian