Wednesday, February 29, 2012

Mengurutkan data berdasarkan Angka

Sempat mengalami kendala waktu mengambil data dari suatu tabel dan diurutkan berdasarkan Nomor id, tapi diurutkan dari yang terkecil terlebih dahulu. Akan tetapi hasil yang ditampilkan tidak sesuai dengan harapan alias urutnya secara acak.

contoh:
1,2,3,4,5,10,12,34


select id from tabelku order by id asc

yang muncul tidak seperti diatas tapi acak.

Pada contoh ini saya mengunakan database SQL Server, tapi saya rasa tidak terlalu berbeda dengan database lainnya.

Jadi, cara yang saya pakai adalah menkonversi id itu ke nilai number, karena bisa jadi nilai idnya tidak berupa number.

select id from tabelku order by convert(int,id) asc

dan hasil yang ditampilkan, berurut:
1,2,3,4,5,10,12,34

Wednesday, February 22, 2012

Pengulangan di store procedure (SQL Server)

Beberapa waktu lalu sampat ada beberapa pekerjaan yang memerlukan pemrosesan data secara berulang di suatu procedure (SQL server). Cara seperti ini sudah bisa kita lakukan di dalam sebuah pemrogramman VB / PHP.
Kita bisa pakai perintah seperti ini :

Do
'code yang akan diproses

rs.movenext
Loop Until Rs.EOF


Konsepnya sama dengan pengulangan data di pemrogramman VB/PHP, tapi proses ini dilakukan sekaligus di dalam sebuah storeprocedure:

DECLARE @ID int



-- ambil id dari marker detail
DECLARE c1 CURSOR READ_ONLY
FOR
select id
From Order_DETAIL
where OrderNo=@orderNo
OPEN c1

FETCH NEXT FROM c1
INTO @ID

WHILE @@FETCH_STATUS = 0
BEGIN

---- lakukan proses eksekusi di sini, dengan memanfaatkan nilai dari variable @id
delete from order_detail where id=@id



FETCH NEXT FROM c1
INTO @ID

END

CLOSE c1
DEALLOCATE c1