Thursday, August 24, 2006

Teknik mengembalikan nilai dengan menggunakan Store Procedure
By: pieter_edison@yahoo.com

Dalam topik ini, kita akan membahas beberapa teknik untuk mengembalikan nilai seperti fungsi didalam SQL Server dapat juga dilakukan dengan menggunakan store procedure.

Jadi ketika anda telah terlanjur menggunakan store procedure dalam “role-bussiness” anda, kemudian ingin mengembalikan nilainya ( biasanya untuk menampilkan nilai field dalam suatu report ), saya akan mencoba menerangkan 3 teknik yang mungkin dapat digunakan.

Teknik yang digunakan bisa dengan cara :
1. Menggunakan OUTPUT variable syntax
2. Menggunakan Temporary Tables
3. Menggunakan statement RETURN

Teknik Pertama – Menggunakan OUTPUT variable

Maksud teknik ini kita dapat mendeklarasikan keword OUTPUT pada variable di store procedure yang telah kita buat untuk mengembalikan nilai keluaran.

Contoh penggunaan secara real menggunakan TSQL.

Misalkan di database anda kita menggunakan database pubs yang telah ada terdapat dalam SQL Server anda. Kita ingin mengembalikan nilai berapa banyak Wilayah/Propinsi “CA” yang ada ( dalam hal ini field state ) didalam table authors.

 Potongan scriptnya

USE PUBS
GO
CREATE PROC spCountState (
@strstate varchar(2),
@intCount int OUTPUT
)
AS
SELECT @intCount = COUNT(*) FROM dbo.authors
WHERE state=@strstate
GO

Nah, setelah anda menjalankan dan mengeksekusi store procedure diatas, kemudian kita akan melihat pengembalian nilai banyaknya state yang mengandung kata “CA”


 Potongan scriptnya





USE PUBS
GO
DECLARE @Count int
EXEC spCountState 'CA', @Count OUTPUT
SELECT TotalState=@Count
GO

Akan menghasilkan pengembalian nilai sebagai berikut :
TotalState
15

Teknik Kedua – Menggunakan Temporary Variabel

Maksud teknik ini kita dapat mengembalikan nilai keluaran menggunakan temporary table di store procedure yang telah kita buat.Temporary table dalam SQL Server bisa dilambangkan dengan # .

Contoh penggunaan secara real menggunakan TSQL.

Sama seperti kasus diatas, saya coba paste kembali kasusnya seperti dibawah ini

Misalkan di database anda kita menggunakan database pubs yang telah ada terdapat dalam SQL Server anda. Kita ingin mengembalikan nilai berapa banyak Wilayah/Propinsi “CA” yang ada ( dalam hal ini field state ) didalam table authors.

NB : Dalam hal ini, untuk mengembalikan nilai ke dalam temporary table kita memodifikasi sedikit store procedure diatas dengan kode script sql dibawah ini.

 Potongan scriptnya

USE PUBS
GO
CREATE PROC spCountState2 (
@strstate varchar(2)
)
AS
SELECT COUNT(*) FROM dbo.authors
WHERE state=@strstate
GO

Nah, setelah anda menjalankan dan mengeksekusi store procedure diatas, kemudian kita akan melihat pengembalian nilai banyaknya state yang mengandung kata “CA”


 Potongan scriptnya




USE PUBS
GO
CREATE TABLE #CountState (
intCount int
)
INSERT #CountState
EXEC spCountState2 'CA'
SELECT * FROM #CountState
GO
DROP TABLE # CountState

Akan menghasilkan pengembalian nilai yang sama seperti teknik 1 diatas sebagai berikut:
TotalState
15

Teknik Ketiga – Menggunakan statement RETURN

Maksud teknik ini kita dapat mengembalikan nilai keluaran menggunakan statement RETURN di store procedure yang telah kita buat.Tapi kelemahannya, statement RETURN ini akan menghasilkan pengembalian nilai keluaran numerik tunggal, tidak bisa beberapa nilai.

Contoh penggunaan secara real menggunakan TSQL.

Sama seperti kasus diatas, saya coba paste kembali kasusnya seperti dibawah ini

Misalkan di database anda kita menggunakan database pubs yang telah ada terdapat dalam SQL Server anda. Kita ingin mengembalikan nilai berapa banyak Wilayah/Propinsi “CA” yang ada ( dalam hal ini field state ) didalam table authors.

NB : Dalam hal ini, untuk mengembalikan nilai ke dalam statement RETURN kita memodifikasi sedikit store procedure diatas dengan kode script sql dibawah ini.

 Potongan scriptnya

USE PUBS
GO
CREATE PROC spCountState3 (
@strstate varchar(2)
)
AS
RETURN (SELECT COUNT(*) FROM dbo.authors
WHERE state=@strstate)
GO

Nah, setelah anda menjalankan dan mengeksekusi store procedure diatas, kemudian kita akan melihat pengembalian nilai banyaknya state yang mengandung kata “CA”



 Potongan scriptnya

USE PUBS
GO
DECLARE @Count int
EXEC @Count = spCountState3 'CA'
SELECT TotalState=@Count
GO

Akan menghasilkan pengembalian nilai sebagai berikut :
TotalState
15

Nah dengan ketiga cara tersebut maka anda bebas memilih teknik mana yang ingin anda implementasikan dalam program anda.

Semoga artikel ini bermanfaat bagi anda.

Demikian hasil yang diperoleh dan akhir dari isi tutorial ini.

Segala kritik, komentar mengenai artikel ini dapat disampaikan.

Best Regards,
Pieter

0 Comments:

Post a Comment

<< Home