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.



Kembali      Lanjut         Daftar Isi