sql >> Database teknologi >  >> RDS >> Oracle

Sådan returneres Oracle Cursor fra lagret proc som klientdatasæt ved hjælp af Delphi og DBExpress

Som paulsm4 nævnte i this answer , Delphi er ligeglad med at få lagrede procedureparameterbeskrivelser, og så du er nødt til det selv. For at hente parametre for Oracles lagrede procedure fra en pakke, kan du prøve at bruge GetProcedureParams metode til at udfylde listen med parameterbeskrivelser og med LoadParamListItems procedure udfyld med denne liste Params kollektion. I kode kan det se ud som følger.

Bemærk venligst, at følgende kode kun blev skrevet i browseren i henhold til dokumentationen, så den er ikke testet. Og ja, om at frigøre ProcParams variabel, dette gøres af 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. SQL Server - Der opstod en fejl under udførelse af batch. Fejlmeddelelsen er:Biblioteknavnet er ugyldigt

  2. Hvordan viser man aktive forbindelser på PostgreSQL?

  3. Hvad skal jeg bruge for at køre SQL?

  4. ER_NOT_SUPPORTED_AUTH_MODE - MySQL-server