Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion mit eventgesteuerter Prozedur verbinden (https://www.delphipraxis.net/101592-funktion-mit-eventgesteuerter-prozedur-verbinden.html)

Kernelpanic 16. Okt 2007 03:46


Funktion mit eventgesteuerter Prozedur verbinden
 
Guten Morgen !

Anhand der vorgerückten Stunde zu erkennen, hänge ich an einem Problem.

Ich habe das Problem, das ich eine SQL Abfrage in einer Funktion losschicke das Ergebnis aber in einer Funktion rauskommt die durch ein Event aufgerufen werden muss praktisch sieht das so aus:

Das ist die Funktion, in der der Aufruf kommt:

Delphi-Quellcode:
function GetQueryResult(QCmd:string):String;
begin
  SQLDataSet.CommandText:=QCmd; //Abfrage zuweisen
  SQLDataSet.ExecSQL();        //Losschicken
end;
Die SQLDataSet Komponente schickt nun die Funktion los, und das Ergebnis kommt in so einer Funktion zurück, die durch ein Ereignis ausgeführt wird.
Sieht ca. so aus:
Delphi-Quellcode:
procedure TFrmMain.SQLDataSetAfterOpen(DataSet: TDataSet);
begin
  //Das DataSet auslesen und in String ausgeben
end;
Ist es möglich, das die Funktion wartet, bis das Event eingetreten ist,und dass ich dann aus dieser procedure den die geparsten daten als strung ausgeben kann ?

Danke schonmal

mkinzler 16. Okt 2007 05:35

Re: Funktion mit eventgesteuerter Prozedur verbinden
 
Sie wartet schon, du kannst aber nicht auf das Ergebnis zugreifen.

peschai 16. Okt 2007 07:02

Re: Funktion mit eventgesteuerter Prozedur verbinden
 
Hallo
Delphi-Quellcode:
SQLDataSet.ExecSQL();
Bleibt die Ausführung der Applikation nicht solange innerhalb der ExecSQL Funktion, bis diese fertig ist ? Also könnte dann nicht in der "nächsten Zeile mit dem Auslesen des Datasets begonnen werden ?

mkinzler 16. Okt 2007 07:04

Re: Funktion mit eventgesteuerter Prozedur verbinden
 
zudem solltest du vielleicht .ExecSQL durch .Open ersetzen und dann die Wandlung in einen String dort durchführen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz