Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana mengembalikan Kursor Oracle dari proc yang disimpan sebagai Dataset Klien menggunakan Delphi dan DBExpress

Seperti yang disebutkan paulsm4 dalam this answer , Delphi tidak peduli untuk mendapatkan deskriptor parameter prosedur tersimpan, sehingga Anda harus melakukannya sendiri. Untuk mendapatkan parameter prosedur tersimpan Oracle dari sebuah paket, Anda dapat mencoba menggunakan GetProcedureParams metode untuk mengisi daftar dengan deskriptor parameter dan dengan LoadParamListItems prosedur isi dengan daftar itu Params koleksi. Dalam kode mungkin terlihat seperti berikut.

Harap dicatat, bahwa kode berikut ditulis hanya di browser sesuai dengan dokumentasi, jadi belum diuji. Dan ya, tentang membebaskan ProcParams variabel, ini dilakukan oleh FreeProcParams prosedur:

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. Mengapa Oracle memerlukan alias untuk kolom dalam tampilan saat mendereferensi objek?

  2. menyebarkan aplikasi dengan penyedia OraOLEDB

  3. Bagaimana cara membuat urutan Oracle yang dimulai dengan nilai maksimal dari sebuah tabel?

  4. ORA-01722:Nomor Tidak Valid, temukan baris tertentu

  5. Kumpulan koneksi jdbc Tomcat - kembalikan transaksi yang ditinggalkan