sql >> Database >  >> RDS >> Oracle

Hoe Oracle Cursor van opgeslagen proc als Client Dataset te retourneren met Delphi en DBExpress

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;


  1. Combineren van 2 if block en het maken van een enkele query

  2. Hoe toekomstige(!) datums in een database op te slaan

  3. Postgresql - één database voor iedereen, of één database per klant

  4. Vergelijk vergelijkbare/variaties van woorden/achtervoegsels in MySQL