Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Rekursive SELECT Abfrage (https://www.delphipraxis.net/92224-sql-rekursive-select-abfrage.html)

omata 21. Mai 2007 21:12

Re: SQL Rekursive SELECT Abfrage
 
Hallo TUX_der_Pinguin,

dafür ist die TSQLStoredProc-Komponente da.
Du kannst auch ein SimpleDataSet nehmen und dort den CommandType auf ctStoredProc stellen und über den CommandText dann den Namen der Prozedur angeben.

Gruss
Thorsten

mkinzler 21. Mai 2007 21:14

Re: SQL Rekursive SELECT Abfrage
 
Selectable SPs kann man auch mit einer normalen Query-Komponente aufrufen.

TUX_der_Pinguin 22. Mai 2007 07:49

Re: SQL Rekursive SELECT Abfrage
 
Mein erster Lösungs Ansatz sieht wie folgt aus

Delphi-Quellcode:
SQLQuery              := TSQLQuery.Create(Self);
SQLQuery.SQLConnection := frmMain.SQLCon;
SQLQuery.SQL.Text     := 'CALL GetTree('+QuotedStr(IntToStr(ParentID))+');';
SQLQuery.Open;

If SQLQuery.RecordCount > 0 Then Begin
  While NOT SQLQuery.Eof Do Begin
    ShowMessage(SQLQuery.FindField('Name').AsString);
    SQLQuery.Next;
  End;
End;

SQLQuery.Close;
SQLQuery.Free;
Die Fehlermeldung lautet:
Zitat:

Datenbank-Server-Fehler: PROCEDURE db.GetTree can't return a result set in the given context.
Ich habs mir 'EXECUTE PROCEDURE GetTree()', was ich irgendwo im Forum mal gelesen habe, aber die Syntax
funktioniert schon nicht mals in der MySQL Console.

Der 2. Lösungs Ansatz, etwas viel versprechender aber es scheitert an der Parameterübergabe:
Delphi-Quellcode:
SQLProc               := TSQLStoredProc.Create(Self);
SQLProc.SQLConnection := frmMain.SQLCon;
SQLProc.StoredProcName := 'GetTree';
With SQLProc.Params.CreateParam(ftInteger, '_ParentID', ptInput) Do AsInteger := PID;
SQLProc.Open;

If SQLProc.RecordCount > 0 Then Begin
  ShowMessage(IntToStr(SQLProc.RecordCount));
End;

SQLProc.Close;
SQLProc.Free;
Die Fehlermeldung:
Zitat:

dbExpress-Fehler: [0x0005]: Operation wird nicht unterstützt.
mfg

TUX


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.
Seite 2 von 2     12   

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