Skip to main content

[Dokumentasi] Penggunaan Fetch dan Cursor pada SQL Server 2000

Seringkali seorang programmer dihadapkan pada suatu kasus yang mengharuskan untuk memproses data dari tabel, di mana data tersebut tidak bisa hanya dengan menggunakan perintah select, akan tetapi harus diproses dengan menggunakan perulangan/looping. Sementara untuk membuat suatu program kecil, hal itu dianggap kurang praktis. Dalam Ms SQL Server (khususnya Ms SQL Server 2000), tersedia suatu fitur yang bisa digunakan, yakni Fetch dan Cursor.
Cursor dapat diartikan sebagai suatu variabel yang digunakan untuk menampung hasil query satu baris/record atau lebih, di mana ia juga menjadi penampung sekaligus pointer atas hasil eksekusi query.
Di sini, kita akan coba menguraikan penggunaan sederhana dari Fetch dan Cursor, sehingga bisa dikembangkan sendiri sesuai dengan kebutuhan.
Langkah pertama, kita buat satu tabel, dalam kasus ini kita gunakan tabel dengan nama Barang, dengan 3 field (Kode, NamaBarang dan Jumlah)
CREATE TABLE [Barang] (
[Kode] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[NamaBarang] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Jumlah] [int] NULL ,
CONSTRAINT [PK_Barang] PRIMARY KEY CLUSTERED
(
[Kode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
Masukkan beberapa data ke dalam tabel yang baru dibuat
Insert Into Barang (Kode, NamaBarang, Jumlah) Values ('1', 'Buku Tulis', '100')
Insert Into Barang (Kode, NamaBarang, Jumlah) Values ('2', 'Pena', '150')
Insert Into Barang (Kode, NamaBarang, Jumlah) Values ('3', 'Penggaris', '50')
Selanjutnya kita buat Transact-SQL dengan menggunakan Fetch dan Cursor. Berikut tahapan-tahapan nya
1. Declare
Mendeklarasi nama cursor yang dilanjutkan dengan struktur query select
DECLARE [nama cursor] CURSOR FOR [Query]
Contoh:
DECLARE barang_cursor CURSOR FOR
SELECT Kode, NamaBarang, Jumlah FROM Barang
WHERE NamaBarang ''
ORDER BY Kode, NamaBarang
2. Open
Setelah didekalarasi, cursor harus tersebut dibuka terlebih dahulu sebelum digunakan.
OPEN [nama cursor]
Contoh:
OPEN barang_cursor
3. Fetch
Fetch merupakan perintah untuk mengambil isi cursor yakni hasil query pada saat cursor tersebut dideklarasikan dan berikutnya ditampung ke dalam variabel.
FETCH [nama cursor] INTO [variabel1, variabel2,..]
Contoh:
FETCH NEXT FROM barang_cursor
INTO @Kode, @NamaBarang, @Jumlah
Apabila hasil query lebih dari 1 baris, maka dapat ditambahkan perulangan dengan melihat kondisi @@FETCH_STATUS
4. Close dan Deallocate
CLOSE merupakan perintah untuk menutup Cursor, kemudian Deallocate digunakan untuk melepaskan.
CLOSE [nama cursor]
DEALLOCATE [nama cursor]
Contoh:
CLOSE barang_cursor
DEALLOCATE barang_cursor
Berikut Query Keseluruhan
/* Untuk memastikan bahwa kita menggunakan database yang benar, jalankan perintah use database di mana tabel tersebut digunakan */
USE Barang
GO
/* Deklarasikan variabel-variabel yang akan dijadikan tujuan penyimpanan hasil dari FETCH. */
DECLARE @Kode varchar(50), @NamaBarang varchar(150), @Jumlah int
/* Deklarasikan Cursor yang akan digunakan, dilanjutkan dengan perintah Select dari tabel yang akan diproses. */
DECLARE barang_cursor CURSOR FOR
SELECT Kode, NamaBarang, Jumlah FROM Barang
WHERE NamaBarang ''
ORDER BY Kode, NamaBarang
/* Mengidentifikasi Cursor */
OPEN barang_cursor
/*
Menjalankan fetch pertama dan menampung isi cursor ke dalam variabel-variabel.
Pastikan posisi-posisi variabel pada saat menjalankan fetch memiliki urutan yang sama dengan field-field yang seharusnya yang ada di dalam perintah SELECT di atas
*/
FETCH NEXT FROM barang_cursor
INTO @Kode, @NamaBarang, @Jumlah
/*
Lakukan Looping data yang dihasilkan oleh Cursor
Melakukan pengecekan @@FETCH_STATUS untuk memastikan apabila masih terdapat beberapa baris data.
*/
WHILE @@FETCH_STATUS = 0
BEGIN
/* Menampilkan nilai dari variabel-variabel hasil dari Fetch. */
PRINT 'Barang : ' + @Kode + ' - ' + @NamaBarang + ' - ' + Cast(@Jumlah As Varchar(10))
/* Mengembalikan ke bagian FETCH jika baris data masih ada. Baris ini akan dieksekusi jika fetch sebelumnya berhasil dieksekusi. */
FETCH NEXT FROM barang_cursor
INTO @Kode, @NamaBarang, @Jumlah
END
/* Terakhir, jangan lupa untuk selalu menutup dan melepaskan Cursor yang sudah kita gunakan, setelah semua proses dijalankan */
CLOSE barang_cursor
DEALLOCATE barang_cursor
GO

Comments

Popular posts from this blog

[Dokumentasi] Memulai Penggunaan yii framework

Yii adalah framework (kerangka kerja) PHP berbasis-komponen, berkinerja tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan reusability maksimum dalam pemrograman Web dan mampu meningkatkan kecepatan pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/ ) singkatan dari "Yes It Is!". Untuk membuat web dengan menggunakan framework yii, kita bisa membuat main project nya dengan menggunakan tool yiic (command line tool). Berikut langkah-langkah membuat aplikasi web yii dengan tool yiic. Download framework yii dari website yiiframework : http://www.yiiframework.com/download/ Extract folder isi file archive yiiframework yang telah di download ke direktori htdocs. Rename folder yii tersebut menjadi “yii” Buka command prompt, dan masuk ke direktori htdocs/yii/framework jalankan perintah berikut :yiic webapp ../../namafolderaplikasi Jika proses berhasil, maka akan otomatis melakukan generate folder-folder dan file-file aplikasi dengan framework

[Dokumentasi] Konfigurasi PHP agar mendukung DB PostgreSQL

Pada saat kita menginstall PHP baik dengan menginstal paket PHP yang terpisah dengan Apache ataupun yang satu paket dengan Apachenya (ex : XAMPP), terkadang PHP tersebut belum mendukung penggunaan database PostgreSQL, untuk menjadikan PHP dapat mendukung penggunaan database PostgreSQL, berikut ini langkah-langkah yang perlu dilakukan : a. Windows Edit php.ini dan php-pear.ini  Hilangkan tanda comment (;) pada extension=php_pdo_pgsql.dll extension=php_pgsql.dll Tambahkan path lokasi folder bin Postgre pada Environment Variable -> path ex : C:\Program Files\PostgreSQL\8.3\bin Restart Windows b. Debian Install paket php, postgresql, dan paket php postgre nya -> apt-get install php5-pgsql -> apt-get install libpq-dev apt-get install postgresql-8.4 php5-pgsql tambahkan baris berikut ke php.ini extension=pgsql.so extension=pdo_pgsql.so Restart service apachenya

Tim Apple bergabung dengan Alipay untuk merajai China

Industri pembayaran mobile China menghasilkan lebih dari $ 9 triliun per tahun, dan Alipay adalah pemimpin pasar. Apple memenangkan medali perak China tahun lalu, dengan iPhone 7 Plus menjadi ponsel terlaris kedua di negara berpenduduk pada 2017. Pada 2018, raksasa elektronik tersebut mencari emas. Dalam sebuah langkah yang tidak biasa, Apple bermitra dengan Ant Financial, perusahaan afiliasi raksasa e-commerce Alibaba, untuk memungkinkan pelanggan membeli produk di toko dan online menggunakan Alipay, sistem pembayaran yang bersaing dengan Apple Pay. Sebagai gantinya, aplikasi Alipay akan memiliki bagian khusus untuk pembelian App Store. Meskipun layanan seperti PayPal dan Alipay dapat digunakan di App Store, iTunes dan Apple Music, Ant Financial menggembar-gemborkan ini sebagai pertama kalinya Apple mengizinkan metode pembayaran mobile pihak ketiga di toko fisiknya. China adalah pasar yang sangat besar untuk Apple, dengan penjualan $ 9,8 miliar pada kuartal keempat tahun 2017 saja.