|
Memanggil Prosedur
Tersimpan
dari ActiveX
DLL
3. Tier Data
Proses (Data Process Layer)
Prosedur tersimpan (stored procedure) adalah program bahasa
T-SQL yang dipergunakan untuk melakukan pencarian atau memodifikasi
database.
Pada halaman ini
contoh kasus yang akan diperlihatkan adalah bagaimana mengakses database
dengan Prosedur Tersimpan (Strored Procedure). Prosedur tersimpan
dipanggil dari ActiveX DLL. ActiveX DLL dipanggil dari Script yang ada pada
halaman ASP. Halaman asp yang meanggil ActiveX DLL
tersebut sekaligus dijadikan target hasil dari pemanggilan yang dilakukan. Hasil dari
pemanggilan ini adalah tag-tag HTML.
Hasil tampilan data ini dibuat dengan menggunakan Tag HTML
yang disimpan di dalam kode ActiveX DLL. ActiveX DLL ini dibuat
dengan Visual Basic dan didaftarkan pada server WEB.
1.
Prosedur Tersimpan
Kita akan membuat prosedur tersimpan yang
dapat menerima masukan (parameter input) dari pemanggilnya. Lalu prosedur
tersimpan tersebut akan memproses data berdasarkan paramater input yang
diberikan.
Untuk membuat prosedur tersimpan pada SQL Server, buka
Enterprise Manager SQL Server. Klik di sini
untuk melihat gambar. Setelah Enterprise Manager terbuka lalu klik Action
- New Stored Procedure (klik di sini untuk
melihat gambar). Enterprise Manager akan menampilkan dialog sebagai tempat
untuk menulis Script Prosedur tersimpan klik di
sini untuk melihat gambar. Ketik kode di bawah ini pada dialog
prosedur tersimpan tersimpan tersebut:
CREATE PROCEDURE SP_Karyawan @NIK varchar(9) AS
SELECT * FROM TblKaryawan WHERE NIK = @NIK GO
Klik OK jika telah selesai, lalu beri nama
SP_Karyawan. Klik di sini untuk lihat
gambar.
Perhatikan kode '@NIK' adalah karakter yang dipergunakan
untuk menerima parameter input. Parameter input ini akan dipergunakan
untuk mencari data yang sesuai dengan NIK yang ada pada database. Sampai
di sini prosedur tersimpan kita telah selesai.
2. ActiveX
DLL Pada bab sebelumnya saya telah menjelaskan bagaimana
membuat ActiveX DLL yang berfungsi sebagai script ASP. Jadi disini saya
tidak akan menjelaskan lagi bagaimana membuat ActiveX DLL tersebut. Disini
saya akan menjelaskan bagaimana ActiveX DLL tersebut dipergunakan untuk
memanggil Prosedur tersimpan dan mengeluarkan hasilnya pada halaman ASP
sebagai tag-tag HTML. Oke kita mulai saja. Buat Project ActiveX DLL,
lalu refrence ke Microsoft ActiveX Data Objects 2.6 Library. Anda
boleh memakai versi yang lebih rendah misalnya 2.0. Berinama project
tersebut sebagai AksesData, Lalu berinama Class1 yang ada pada
project tersebut sebagai CDataProc. Nama ini penting dikenali
untuk memanggil ActiveX DLL ini nanti dari halaman ASP. Klik di sini untuk melihat gambar. Karena ActiveX DLL ini juga
dapat menjalankan kode-kode dalamn lingkungan ASP, maka jangan lupa
pula merefrensikan project ini ke Microsoft Active Server Pages Object
Library. Klik Project - Refrences... lalu pilih Microsoft Active Server
Pages Object Library. Klik di sini untuk lihat gambar.
Ketikkan kode dibawah ini pada project ActiveX DLL tersebut.
Option Explicit
'utk ASP Private
oApplication As Application Private oRequest As Request Private
oResponse As Response Private oServer As Server Private oSession
As Session Private oPage As Object
'utk Akses Data Private
oConn As ADODB.Connection Private oParam As ADODB.Parameter
Private oCmd As ADODB.Command Private oRs As ADODB.Recordset
Private m_strConn As String
Private m_strNIK As String
Public Sub OnStartPage(oSC As ScriptingContext)
Set oApplication = oSC.Application Set oRequest =
oSC.Request Set oResponse = oSC.Response Set
oSession = oSC.Session End Sub
Public Sub OnEndPage()
Set oApplication = Nothing Set oRequest = Nothing
Set oResponse = Nothing Set oSession = Nothing
End Sub
Public Sub AmbilKaryawan(Page As Object)
Dim strHTML As String Set oConn = New
ADODB.Connection oConn.Open m_strConn Set oCmd = New
ADODB.Command Set oRs = New ADODB.Recordset Set oParam = oCmd.CreateParameter("@NIK",
adChar, , 9, m_strNIK) oCmd.ActiveConnection =
oConn oCmd.CommandType = adCmdStoredProc oCmd.CommandText =
"SP_Karyawan" oCmd.Parameters.Append
oParam Set oRs = oCmd.Execute
strHTML = "<TABLE bgColor = silver border =
1 cellPadding= 5>" strHTML =
strHTML &
"<TR><TD>NIK</TD><TD>Nama</TD>"
strHTML =strHTML
&
"<TD>Alamat</TD></TR>" strHTML
= strHTML&"<TR><TD>" & oRs.Fields("NIK") &
"</TD>"
strHTML = strHTML &"<TD>" &
oRs.Fields("Nama") & "</TD>" strHTML = strHTML& "<TD>"
& oRs.Fields("Alamat") & "</TD></TR>"
oResponse.Write strHTML End Sub
Public Property Let strConn(ByVal strNewConn As String)
m_strConn = strNewConn
End Property
Public Property Let strNIK(ByVal strNewNIK As String)
m_strNIK = strNewNIK
End Property
Private Sub Class_Terminate()
Set oParam = Nothing Set oCmd = Nothing Set
oRs = Nothing Set oConn = Nothing
End Sub
Compile project tersebut menjadi
AksesData.DLL. Klik File lalu pilih make AksesData.dll.. klik di sini untuk melihat gambar. Setelah
complasi tersebut, Visal Basic menghasilkan file AksesData.DLL. Daftarkan
file ini pada WEB sever dengan cara ketik: regsvr32 AksesData.DLL jika
pendaftaran file ini berhasil maka hasilnya akan seperti
gambar berikut (klik di sini untuk melihat
gambar). Nah file AksesData.DLL tersebut talah didaftarkan di server
WEB kita. Sekarang sudah dapat dipanggil dari halaman ASP. Buat
File Karyawan.asp untuk memanggil prosedur yang ada pada file DLL
tersebut. Jika anda menggunakan editor Visual Interdev sebagai Editor
ASP, anda dapat melihat prosedur-prosedur yang dibuat dengan Visual Basic
tadi. Klik di sini untuk melihat
gambar. Script selengkapnya adalah seperti di bawah
ini:
<% Dim
oKaryawan set oKaryawan =
Server.CreateObject("AksesData.CDataProc") oKaryawan.strConn =
"Provider=SQLOLEDB;Persist Security Info=False;Data
Source=NTSERVER;Initial Catalog= SisfoPeg;UserID=sa;Password=;"
oKaryawan.strNIK = Request.Form("txtNIK")
oKaryawan.AmbilKaryawan Me %>
Untuk menguji kode tersebut, terlebih dahulu
dibuat file frmInput.htm yang dipergunakan sebagai form inputan yang akan
mengirim NIK ke halaman asp di atas. Ini adalah kode form
Inputannya:
<HTML><HEAD><TITLE>Input
NIK</TITLE></HEAD> <BODY> <FORM action="Karyawan.asp" method=post name=frmNIK>
<TABLE border=0 cellPadding=1 cellSpacing=1 width="10%"
bgcolor=#ffcc33> <TR> <TD><FONT
face=Verdana size=2>NIK</FONT></TD>
<TD><INPUT name=txtNIK></TD> </TR>
<TR> <TD><INPUT name=cmdOK type=submit
value=OK></TD> <TD></TD>
</TR> </TABLE> </FORM> </BODY>
</HTML>
Hasil dari kode
diatas jika ditampilkan pada browser adalah sebagai berikut (klik di sini untuk melihat gambar). Perhatikan
kata yang diberi warna merah (action="Karyawan.asp") yang berarti halaman
html ini nanti akan menggunakan halaman Karyawan.asp sebagai pengolah data
yang akan dikirimkannya. Halaman Karyawan.asp jika diproses akan
menghasilkan seperti gambar ini (klik di sini
untuk lihat
gambar).
Selesai sudah perjalanan kita
memanggil prosedur tersimpan dengan ActiveX DLL yang terdapat pada halaman
ASP. Mengapa harus menggunakan ActiveX DLL. Sedangkan script tersebut
dapat langsung diketik pada halaman ASP. Ada beberapa alasan mengapa
membungkus kode tersebut pada ActiveX DLL nya Visual Basic yang
diantaranya sudah saya sebutkan pada waktu pembahasan ActiveX DLL
terdahulu. Dipandang dari sudut pemrograman, memprogram ActiveX DLL di
Visual Basic akan lebih menyenangkan dengan lingkungan Tool pengembangan
Visual Basic itu sendiri yang memang dikenal
Powerful.
|