Jak je zmíněn paulsm4 v this answer
, Delphi se nestará o získání deskriptorů parametrů uložené procedury, takže to musíte udělat sami. Chcete-li získat parametry uložené procedury Oracle z balíčku, můžete zkusit použít GetProcedureParams
metoda k vyplnění seznamu popisovači parametrů a pomocí LoadParamListItems
postup vyplňte tímto seznamem Params
sbírka. V kódu to může vypadat následovně.
Vezměte prosím na vědomí, že následující kód byl napsán pouze v prohlížeči podle dokumentace, takže je netestovaný. A ano, o uvolnění ProcParams
proměnnou, to provede FreeProcParams
postup:
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;