Zoals paulsm4 vermeldde in this answer
, geeft Delphi er niets om om parameterdescriptors voor opgeslagen procedures te krijgen, zodat u het zelf moet doen. Om parameters van de Oracle-opgeslagen procedure uit een pakket te halen, kunt u proberen de GetProcedureParams
methode om de lijst te vullen met parameterdescriptors en met de LoadParamListItems
procedure vul met die lijst Params
verzameling. In code kan het er als volgt uitzien.
Houd er rekening mee dat de volgende code alleen in de browser is geschreven volgens de documentatie, dus het is niet getest. En ja, over het vrijgeven van ProcParams
variabele, wordt dit gedaan door de FreeProcParams
procedure:
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;