07 Juni 2011

Client Server : Stored Procedure Pada SQL Server 2000

07 Juni 2011
STORED PROCEDURE
Stored Procedure adalah kumpulan perintah SQL yang diberi nama dan
disimpan di server. Stored Procedure biasanya berisi perintah-perintah umum biasanya berisi perintah-perintah umum yang berhubungan dengan database pada server, dan menghasilkan sekumpulan record.

Stored procedure menyimpan statement-statement SQL dalam sebuah berkas yang disimpan di database berkas yang disimpan di database server, sehingga dari sisi performa
eksekusi, utilitas jaringan, dan keamanan, stored procedure banyak dipakai sebagai solusi akses data.

Kelebihan Stored Procedure
1. Dapat digunakan kapan pun Seperti halnya pembuatan prosedur pada
C++ / Pascal / Java atau pemrograman yang lain, apabila pembuatan program bersifat modular (dibuat kecil untuk setiap bersifat modular (dibuat kecil untuk setiap maksud/tujuan), akan lebih baik apabila pemrograman tersebut menggunakan banyak prosedur. Dengan dibuat terpisah, kapanpun diinginkan, hanya tinggal memanggil program tersebut.

2. Lebih cepat dan efisien untuk program yang besar, pembuatan program Server Side, terasa lebih mudah dibandingkan Client Side. Dengan Server Side, program lebih bersifat netral terhadap semua aplikasi. Disisi programer, ia tidak perlu mengetahui terlalu mendalam terhadap suatu program aplikasi. mendalam terhadap suatu program aplikasi. Karena program aplikasi tersebut hanyalah User interface/tampilan belaka, yang hanya berfungsi untuk menampilkan data, memasukkan data, serta memberikan parameter-parameter yang dibutuhkan oleh server.

3. Stored procedure mencegah terjadinya SQL injection. SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.

Membuat Stored Procedure

CREATE PROC AS


Contoh membuat proc barang dengan menampilkan semua data pada table product di database nortwind
CREATE PROC BARANG AS
SELECT * FROM Products

Merubah Procedure
ALTER PROC AS


Merubah proc yang sudah kita buat, contoh kita mengubah proc barang yang kita buat tadi, yang pertamanya menampilkan semua product menjadi hanya menampilkan product dimana supplier id=3
ALTER PROC BARANG AS
SELECT * FROM Products
WHERE SupplierID = 3

Menjalankan Procedure
Execute atau Exec

untuk menjalankan procedur barang yang sudah kita buat tadi
EXEC BARANG
atau atau
EXECUTE BARANG

Menghapus Procedure
Drop Procedure

contoh menghapus proc barang yang kita buat tadi
DROP PROCEDURE BARANG

Stored Procedure dengan Parameter
Parameter berfungsi sebagai passing variable antara stored procedure dengan pemanggilnya.

Contoh 1:
disini kita memanggil data product dimana productId=@kode, dan saat menjalankan kita masukkan paramete @kodenya = 2.
create proc data_brg(@kode int)
as
select * from Products
where ProductID = @kode

exec data_brg '2'

Contoh 2:
dengan 2 parameter
create proc data_brg2
@cat int, @stock int
as
select * from Products
where CategoryID = @cat where CategoryID = @cat
and UnitsInStock < @stock exec data_brg2 @cat='2', @stock='5' execute data_brg2 '2', '5'


Parameter Output
Mengindikasikan bahwa parameter berupa return parameter. Nilai parameter dpt diubah dan diberikan nilainya pada program pemanggilnya. nilainya pada program pemanggilnya.

Contoh1:
create proc lihat_brg
(@kode varchar(5),
@nama varchar(30) output,
@stock decimal output,
@hrgj decimal output)
AS
select @nama=ProductName,
@stock=UnitsInStock,
@hrgj=UnitPrice
From Products
where ProductID = @kode

Untuk menjalankan, variabel pada program yg memanggil harus dideklarasikan dan saat dieksekusi diikuti kata output

Declare @nm varchar(50), @jml decimal,
@hargaj decimal
Execute lihat_brg '1', @nm output, @jml
output, @hargaj output
Print 'Nama Brg : ' + @nm
Print 'Stock : ' + str(@jml) Print 'Stock : ' + str(@jml)
Print 'Harga Jual : ' + str(@hargaj)
Print 'Total Harga : ' + str(@jml * @hargaj)

Procedur di buat di query analyzer, tapi kalau mau cepat bisa malalui enterprise manager

1 comments:

didi mengatakan...

mantaaap...

Poskan Komentar

sampaikan komentar dengan sopan dan bertanggung jawab :)