16 Maret 2009

Implementasi Extended Stored Procedure

Melanjutkan bahasan sebelumnya tentang extended stored procedure pada SQL Server, sekarang akan dijelaskan lebih jauh tentang implementasinya. Seperti yang dijelaskan sebelumnya, extended stored procedure sama dengan procedure biasa. Extended stored procedure ini ada pada database masing-masing dan bisa kita lihat melalui Enterprise Manager/Management Studio. Beberapa sudah diberikan oleh SQL Server yang ada pada database master seperti xp_cmdshell, xp_grantlogin, xp_revokelogin dan lainnya yang memiliki prefix xp_. Extended stored procedure ini disediakan banyak oleh SQL Server, tapi banyak juga yang tidak didokumentasikan, jadi ngilu juga.
Salah satu extended stored procedure yang sering aku gunakan adalah xp_cmdshell. Mengeksekusi xp_cmdshell sama halnya dengan mengeksekusi perintah shell misalnya dir C:\. Procedure ini akan mengembalikan output berupa teks hasil dari perintah shell yang diberikan. Sintaxnya adalah sebagai berikut:
xp_cmdshell {‘command_string’'} [, no_output]
Dengan command_string adalah perintah shell dan parameter no_output (opsional) jika dipakai tidak akan mengembalikan output hasil eksekusi. Misal kita ingin melihat isi drive C:\, maka perintahnya xp_cmdshell ‘dir C:\’, dan akan mengembalikan output seperti jika kita menjalankannya pada command prompt.
Kita juga bisa menambahkan extended stored procedure dari dll yang ada. Sebelum kita panggil procedurenya, kita perlu registrasikan dulu dengan sp_addextendedproc. Misal nama kita membuat dll dengan nama file “C:\tesdll.dll” dan didalam dll tersebut ada fungsi yang di ekspor bernama xp_Halo, maka kita bisa registrasikan dengan cara sebagai berikut:
sp_addextendedproc 'xp_Halo', 'C:\tesdll.dll'
Selanjutnya kita bisa memanggil procedure xp_Halo layaknya stored procedure biasa. Jika ingin menghapus exenteded stored procedure ini:
sp_dropextendedproc 'xp_Halo'

Tidak ada komentar:

Posting Komentar