Es gibt zwei Typen von SP
Der eine Typ von SP gibt eine Ergebnissmenge zurück. Dann ist in der SP zwingend ein SUSPEND pro Datensatz notwendig.
Dann geht das was mkinzler vorgeschlagen hat
select <Felder> from <SP_Name>(<InputParameter>) where <Bedingung>;
und den Aufruf in Delphi dazu
Delphi-Quellcode:
Query.Open;
while not Query.EOF
do ........
Ist in der SP kein SUSPEND oder man bekommt genau einen Datensatz, dann muss ich einen anderen Weg in Delphi wählen.
onkelthom war schon auf dem richtigen Weg. Der Resultwert kann erst nach der Ausführung mit ExecProc abgerufen werden.
Vorher gibt es noch keinen Wert.
So sollte es funktionieren
Delphi-Quellcode:
IBOStoredProc1.ParamByName('pANZAHL').asInteger; //Parameter den die Prodezur zum ausführen braucht
IBOStoredProc1.Prepare;
IBOStoredProc1.ExecProc;
// Nach dem Exec
iRESULT := IBOStoredProc1.ParamByName('pRESULT').asInteger; // Der Rückgabewert Paremeter den die Prozedur als Result zurück liefert.
DM.DataModule1.IBOTransaction1.CommitRetaining;
Gruß Borwin