Muncul pertanyaan baru yaitu bagaimana jika baris yang ditampilkan adalah sebanyak n baris mulai dari start? Misalnya tampilkan baris senyak 8 baris mulai dari baris ke-5 maka procedure proc_supp harus dimodifikasi. Karena pembahasannya agak panjang maka selengkapnya dapat dilihat tip SQL Server di www.power-it.co.id dengan memilih menu SQL, di sana dibahas secara detil, lengkap dengan contoh dan bagaimana jika terjadi error saat membuat procedure tersebut.
Rgrds, Syahrial Chan ----- Original Message ----- From: Syahrial Chan To: [email protected] Sent: Thursday, April 12, 2007 2:21 AM Subject: Re: [indopb] ambil data sesuai limit Cara lain adalah melakukan proses dengan PROCEDURE pada database biar jalannya lebih cepat seperti di bawah ini, misalnya untuk menggabil baris 5 s/d 8 pada table supplier: 1. Buat prosedur: CREATE PROC proc_supp (@start int, @end int) AS BEGIN --Abil kode supplier sebagai WHERE CLAUSE data yang akan ditampilkan DECLARE @looping int, @row int DECLARE @sp_kode1 char(5),@sp_kode2 varchar(500),@command varchar(1000) DECLARE c_supp SCROLL CURSOR FOR SELECT sp_kode FROM supplier ORDER BY sp_kode SET @looping = 1 SET @row = @end - @start + 1 OPEN c_supp FETCH ABSOLUTE @start FROM c_supp INTO @sp_kode1 SET @sp_kode2 = "'" + @sp_kode1 + "'," WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM c_supp INTO @sp_kode1 SET @looping = @looping + 1 IF @looping > @row BREAK ELSE BEGIN SET @sp_kode2 = @sp_kode2 + "'" + @sp_kode1 + "'," CONTINUE END END SET @sp_kode2 = left(@sp_kode2,len(@sp_kode2) - 1 ) CLOSE c_supp DEALLOCATE c_supp --SELECT tabel supplier berd SET @command = 'SELECT * FROM supplier WHERE sp_kode IN (' + @sp_kode2 + ')' EXEC (@command) END 2. Buat DataWindow 3. Test dengan preview DataWindow, ketikkan 5 pada start dan 8 pada end. Nilai ini sesuai dengan range row yang akan ditampilkan Selamat mencoba! ----- Original Message ----- From: [EMAIL PROTECTED] To: [email protected] Sent: Wednesday, April 11, 2007 5:23 PM Subject: Re: [indopb] ambil data sesuai limit Hello... Sy bukan senior loh... :)) Tp sy coba jawab... Coba kalo gini : 1. Buat 1 group dengan definition : ceiling( getrow() /10) 2. Pada dw_1.event retrieveend() ketikin syntax berikut : long i for i=1 to long(rowcount/10) //syntax dibawah disambung terus kesamping jadi satu baris, bukan kebawah... modify('create text(band=foreground alignment="2" text="'+string(i)+'" border="2" color="33554432" x="'+string(i*90)+'" y="1400" height="56" width="70" html.valueishtml="0" name=tpage_'+string(i)+' visible="1" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="1073741824" pointer="HyperLink!" )') next 3. Trus pada dw_1.event clicked() ketikin syntax berikut : if dwo.type='text' then dw_2.scrolltorow(long(dwo.text)*10) 4. dw_1.retrieve() --->> dimana aja 5. Jalankan aplikasi 6. Cobain klik 1 2 3 4 ... -nya Kayak gitu bukan? Mudah²an membantu.. ;) Regards, Not the best, only a www.h4rd3st.com one... *yg ini gratisan loh... bukan promosi... :)) ----- Original Message ----- From: "Firman Setiawan" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, April 11, 2007 1:52 PM Subject: [indopb] ambil data sesuai limit > Dear Senior PB, > > > > langsung saja ni, masih mengenai data. Saya lg buat program tp user meminta agar data yg > ditampilkan dalam datawindow misal 10 data tp tidak diambil semua (seperti google ada 1,2,3,4,5, > ...) jadi bila kita pilih angka 2 maka yg keluar adalah data 11 sampai 20. Nah situ yg saya > bingung karena di sql server 2000 tidak ada limit. Bagaimana solusi yg dpt saya ambil. terima > kasih atas bantuan n masukan Senior PB.
