PENGGUNAAN SCROLLABLE CURSOR
Ada lima tipe scrollable cursor yang data digunakan saat memproses cursor yaitu :
- Prior
- Next
- First
- Last
- Relative (+/- n)
Untuk mengaktifkan scrollable cursor tambahkan sintak SCROLL saat mendeklarasikan CURSOR, sbb :
--1.Deklarasi cursor
DECLARE CsrKaryawan SCROLL CURSOR
FOR select NIK, NAMA from Karyawan
--2.Buka cursor
Open CsrKaryawan
--3.Proses cursor
DECLARE @nik CHAR(10), @nama VARCHAR(30)
FETCH NEXT FROM csrKaryawan into @nik, @nama
PRINT @NIK + @NAMA
FETCH NEXT FROM csrKaryawan into @nik, @nama
PRINT @NIK + @NAMA
FETCH NEXT FROM csrKaryawan into @nik, @nama
PRINT @NIK + @NAMA
--4.Tutup Cursor
Close CsrKaryawan
--5.Dealokasi Cursor
Deallocate CsrKaryawan
create procedure Lat_UAS2
as
begin
declare x cursor
for select no_rekening,jenis_tabungan,nama,alamat from tbnasabah
open x
declare @no_rekening varchar(15),@jenis_tabungan varchar(20),@nama varchar(50),@alamat varchar(100)
fetch next from x into @no_rekening,@jenis_tabungan,@nama,@alamat
WHILE @@FETCH_STATUS=0
BEGIN
print '----------------------------------------------------------------------------------------------------------------------'
print 'No Rekening : '+@no_rekening
print 'Jenis Tabungan : '+@jenis_tabungan
print 'Nama : '+@nama
print 'Alamat : '+@alamat
print '----------------------------------------------------------------------------------------------------------------------'
print 'No Tanggal NIK Keterangan Debet Kredit Saldo'
print '----------------------------------------------------------------------------------------------------------------------'
begin
declare y cursor
for select tanggal,nik,keterangan,jenis_trans,jumlah,saldo from tbtransaksi where no_rekening=@no_rekening
open y
declare @tanggal smalldatetime,@nik varchar(10),@keterangan varchar(30),@jenis_trans varchar(20),@jumlah money,@saldo money
declare @no int
declare @debet money
declare @kredit money
set @debet=0
set @kredit=0
set @no=1
fetch next from y into @tanggal,@nik,@keterangan,@jenis_trans,@jumlah,@saldo
WHILE @@FETCH_STATUS=0
BEGIN
set @debet=0
set @kredit=0
if @jenis_trans='Debet'
set @debet=@jumlah
else
set @kredit=@jumlah
print convert(char(5),@no)+convert(char(30),left(convert(varchar(30),@tanggal),11))+convert(char(10),@nik)+convert(char(20),@keterangan)+convert(char(15),@debet)+convert(char(15),@kredit)+convert(char(15),@saldo)
set @no=@no+1
fetch next from y into @tanggal,@nik,@keterangan,@jenis_trans,@jumlah,@saldo
END
close y
deallocate y
end
print '----------------------------------------------------------------------------------------------------------------------'
fetch next from x into @no_rekening,@jenis_tabungan,@nama,@alamat
END
close x
deallocate x
end
Tidak ada komentar:
Posting Komentar