sql >> Databasteknik >  >> RDS >> Oracle

Hur man returnerar Oracle Cursor från lagrad proc som klientdataset med hjälp av Delphi och DBExpress

Som paulsm4 nämnde i this answer , Delphi bryr sig inte om att få lagrade procedurparameterbeskrivningar, och så att du måste göra det själv. För att hämta parametrar för Oracles lagrade procedur från ett paket kan du försöka använda GetProcedureParams metod för att fylla listan med parameterbeskrivningar och med LoadParamListItems fyll i proceduren med den listan Params samling. I koden kan det se ut så här.

Observera att följande kod bara skrevs i webbläsaren enligt dokumentationen, så den är opröstad. Och ja, om att frigöra ProcParams variabel, detta görs av FreeProcParams procedur:

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:Ta bort dubblettposter i SQL Server

  2. Hur man begränsar resultat i Oracle

  3. Bästa tillvägagångssätt för Microsoft SQL Server-katastrofåterställning

  4. Android-program för att konvertera SQLite-databasen till Excel