Som paulsm4 nämnde i this answer
, Delphi bryr sig inte om att få lagrade procedurparameterbeskrivningar, och så att du måste göra det själv. För att hämta parametrar för Oracles lagrade procedur från ett paket kan du försöka använda GetProcedureParams
metod för att fylla listan med parameterbeskrivningar och med LoadParamListItems
fyll i proceduren med den listan Params
samling. I koden kan det se ut så här.
Observera att följande kod bara skrevs i webbläsaren enligt dokumentationen, så den är opröstad. Och ja, om att frigöra ProcParams
variabel, detta görs av FreeProcParams
procedur:
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;