Jak wspomniał paulsm4 w this answer
, Delphi nie dba o pobieranie deskryptorów parametrów procedur składowanych, więc musisz to zrobić sam. Aby pobrać parametry procedury składowanej Oracle z pakietu, możesz spróbować użyć GetProcedureParams
metoda wypełniania listy deskryptorami parametrów i LoadParamListItems
procedura wypełnij tą listą Params
kolekcja. W kodzie może to wyglądać następująco.
Zwróć uwagę, że poniższy kod został napisany w przeglądarce zgodnie z dokumentacją, więc nie został przetestowany. I tak, o uwolnieniu ProcParams
jest to wykonywane przez FreeProcParams
procedura:
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;