Wie paulsm4 in this answer
erwähnt
, Delphi kümmert sich nicht darum, Parameterdeskriptoren für gespeicherte Prozeduren zu erhalten, sodass Sie dies selbst tun müssen. Um Parameter der gespeicherten Oracle-Prozedur aus einem Paket abzurufen, können Sie versuchen, GetProcedureParams
-Methode, um die Liste mit Parameterdeskriptoren und mit den LoadParamListItems
Prozedur mit dieser Liste Params
füllen
Sammlung. Im Code könnte es wie folgt aussehen.
Bitte beachten Sie, dass der folgende Code laut Dokumentation nur im Browser geschrieben wurde, also ungetestet ist. Und ja, über das Freigeben von ProcParams
Variable, dies wird durch FreeProcParams
erledigt
Verfahren:
var
ProcParams: TList;
StoredProc: TSQLStoredProc;
...
begin
...
StoredProc.PackageName := 'KP_DATASNAPTEST';
StoredProc.StoredProcName := 'GetFaxData';
ProcParams := TList.Create;
try
GetProcedureParams('GetFaxData', 'KP_DATASNAPTEST', ProcParams);
LoadParamListItems(StoredProc.Params, ProcParams);
StoredProc.ParamByName('abbr').AsString := 'ZZZTOP';
StoredProc.Open;
finally
FreeProcParams(ProcParams);
end;
...
end;