Einzelnen Beitrag anzeigen

slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#6

AW: Ergebnis eines ADOQuery zurückgeben

  Alt 1. Sep 2010, 10:42
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

Geändert von mkinzler ( 1. Sep 2010 um 10:46 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat