Kamis, 20 Januari 2011

Bahan 9 - Scrollablle Cursor

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