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