Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да върнете курсора на Oracle от съхранена процедура като клиентски набор от данни с помощта на Delphi и DBExpress

Както 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. конвертирайте unix_timestamp в timestamp в oracle

  2. Доставчикът на OraOLEDB в .NET ненадежден ли е в CLOB полета?

  3. Проверете дали таблицата съществува или не, преди да я създадете в Oracle

  4. Външен ключ без първичен ключ за справка

  5. Сравнение на трети страни Oracle .NET доставчици