Както paulsm4 спомена в this answer
, Delphi не се интересува от получаването на дескриптори на параметри на съхранена процедура, така че вие трябва да го направите сами. За да получите параметри на съхранената процедура на Oracle от пакет, можете да опитате да използвате GetProcedureParams
метод за попълване на списъка с дескриптори на параметри и с LoadParamListItems
процедура попълнете с този списък Params
колекция. В кода може да изглежда по следния начин.
Моля, обърнете внимание, че следният код е написан само в браузъра според документацията, така че не е тестван. И да, относно освобождаването на ProcParams
променлива, това се прави от FreeProcParams
процедура:
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;