1. Gunakan prosedur tersimpan untuk mengembalikan set data
Kumpulan data yang dikembalikan oleh prosedur tersimpan di Oracle dikembalikan oleh parameter data tipe kursor ref, dan parameter yang mengembalikan data harus dari tipe out atau in out.
Karena tipe data parameter tidak dapat ditentukan secara langsung ketika mendefinisikan prosedur tersimpan adalah: Kursor REF, kursor REF pertama kali didefinisikan ulang dengan metode berikut:
membuat atau mengganti paket fuxjpackage adalah
Type FuxJResultset adalah Ref Cursor;
--Anda juga dapat mendefinisikan konten lain
end fuxjpackage;
Tentukan prosedur tersimpan lagi:
Buat atau ganti Prosedur PembaruanFuxJexample (SDM di Char, SMC di Char, Preccur di FuxJPackage.FuxJResultSet)
sebagai
Mulai
Perbarui fuxJexample Set mc = smc di mana dm = sdm;
Jika SQL%RowCount = 0 lalu
rollback;
buka preccur untuk
SELECT '0' Res dari Dual;
kalau tidak
melakukan;
buka preccur untuk
SELECT '1' Res dari Dual;
berakhir jika;
akhir;
Dan
Buat atau ganti Prosedur InsertFuxJexample (SDM di Char, SMC di Char, Preccur di FuxJPackage.FuxJResultset)
sebagai
Mulai
masukkan ke dalam nilai fuxjexample (dm, mc) (sdm, smc);
melakukan;
buka preccur untuk
Pilih * dari FuxJexample;
akhir;
2. Hubungi prosedur tersimpan yang mengembalikan set data di Delphi
Penyimpanan yang mengeksekusi set data pengembalian dapat dipanggil melalui kontrol TStoredProc atau tquery. ptinputoutput.
Gunakan TStoredProc untuk menjalankan pengaturan yang relevan dari UpdateFuxJexample sebagai:
objek STOREDPROC1: TStoredProc
Databasename = 'useproc'
StoredProcName = 'UpdateFuxJexample'
Paramdata = <
barang
DataType = ftString
Name = 'sdm'
ParamType = ptinput
akhir
barang
DataType = ftString
Name = 'smc'
ParamType = ptinput
akhir
barang
DataType = ftcursor
Name = 'preccur'
ParamType = ptinputoutput
Nilai = nol
akhir>
akhir
Metode eksekusi adalah:
StoredProc1.params.items [0] .Asstring: = Edit1.text; // Tetapkan nilai ke parameter;
STOREDPROC1.PARAMS.ITEMS [1] .Asstring: = Edit2.text; // Tetapkan parameter;
STOREDPROC1.Active: = false;
STOREDPROC1.Active: = true; // Set Hasil Pengembalian
Gunakan TQuery untuk menjalankan pengaturan yang relevan dari InsertFuxJexample sebagai:
Object Query1: TQuery
Databasename = 'useproc'
Sql.strings = (
'mulai'
'InsertFuxJexample (sdm => m, smc =>: mc, preccur =>: recCur);'
'akhir;')
Paramdata = <
barang
DataType = ftString
Name = 'dm'
ParamType = ptinput
akhir
barang
DataType = ftString
Name = 'mc'
ParamType = ptinput
akhir
barang
DataType = ftcursor
Name = 'Reccur'
ParamType = ptinputoutput
akhir>
akhir
Metode eksekusi adalah:
Query1.params.items [0] .asstring: = edit3.text;
Query1.params.items [1] .asstring: = edit4.text;
Query1.active: = false;
Query1.active: = true;
Jika SQL%RowCount = 0 lalu
rollback;
buka preccur untuk
SELECT '0' Res dari Dual;
kalau tidak
melakukan;
buka preccur untuk
SELECT '1' Res dari Dual;
berakhir jika;
akhir;
Dan
Buat atau ganti Prosedur InsertFuxJexample (SDM di Char, SMC di Char, Preccur di FuxJPackage.FuxJResultset)
sebagai
Mulai
masukkan ke dalam nilai fuxjexample (dm, mc) (sdm, smc);
melakukan;
buka preccur untuk
Pilih * dari FuxJexample;
akhir;
2. Hubungi prosedur tersimpan yang mengembalikan set data di Delphi
Penyimpanan yang mengeksekusi set data pengembalian dapat dipanggil melalui kontrol TStoredProc atau tquery. ptinputoutput.
Gunakan TStoredProc untuk menjalankan pengaturan yang relevan dari UpdateFuxJexample sebagai:
objek STOREDPROC1: TStoredProc
Databasename = 'useproc'
StoredProcName = 'UpdateFuxJexample'
Paramdata = <
barang
DataType = ftString
Name = 'sdm'
ParamType = ptinput
akhir
barang
DataType = ftString
Name = 'smc'
ParamType = ptinput
akhir
barang
DataType = ftcursor
Name = 'preccur'
ParamType = ptinputoutput
Nilai = nol
akhir>
akhir
Metode eksekusi adalah:
StoredProc1.params.items [0] .Asstring: = Edit1.text; // Tetapkan nilai ke parameter;
STOREDPROC1.PARAMS.ITEMS [1] .Asstring: = Edit2.text; // Tetapkan parameter;
STOREDPROC1.Active: = false;
STOREDPROC1.Active: = true; // Set Hasil Pengembalian
Gunakan TQuery untuk menjalankan pengaturan yang relevan dari InsertFuxJexample sebagai:
Object Query1: TQuery
Databasename = 'useproc'
Sql.strings = (
'mulai'
'InsertFuxJexample (sdm => m, smc =>: mc, preccur =>: recCur);'
'akhir;')
Paramdata = <
barang
DataType = ftString
Name = 'dm'
ParamType = ptinput
akhir
barang
DataType = ftString
Name = 'mc'
ParamType = ptinput
akhir
barang
DataType = ftcursor
Name = 'Reccur'
ParamType = ptinputoutput
akhir>
akhir
Metode eksekusi adalah:
Query1.params.items [0] .asstring: = edit3.text;
Query1.params.items [1] .asstring: = edit4.text;
Query1.active: = false;
Query1.active: = true;
Lampiran: Kerangka kerja sederhana untuk membuat prosedur tersimpan yang mengembalikan dataset
1.
membuat atau mengganti paket testpackage adalah
Type TestResultset adalah kursor ref;
Akhir TestPackage;
2.
membuat atau mengganti tes prosedur
(
preccur in out testpackage .testresultset
)
sebagai
Mulai
buka preccur untuk
Pilih * dari tabel;
akhir;