Come menzionato da paulsm4 in this answer
, Delphi non si preoccupa di ottenere descrittori di parametri di stored procedure e quindi devi farlo da solo. Per ottenere i parametri della stored procedure Oracle da un pacchetto, puoi provare a utilizzare GetProcedureParams
metodo per riempire l'elenco con descrittori di parametri e con LoadParamListItems
procedura riempire con quell'elenco Params
collezione. Nel codice potrebbe apparire come segue.
Tieni presente che il codice seguente è stato scritto solo nel browser in base alla documentazione, quindi non è stato testato. E sì, sulla liberazione di ProcParams
variabile, questo viene fatto da 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;