:: ADO Objek Model
Dalam membuat
suatu halaman web belum lengkap rasanya jika kita tidak dapat berinteraksi
secara dinamis dengan web yang kita kunjungi, salah satu nilai tambah dari ASP
adalah kita dapat membuat script yang kita buat diintegrasikan dengan suatu
Database, misalnya Microsoft Access.Visual Foxpro, atau Microsoft SQL Server.
ActiveX Data
Object (ADO) adalah komponen yang memungkinkan aplikasi client untuk mengakses
dan memanipulasi data pada web server. Identitas program ADO adalah ADODB.
Seperti
objek-objek laiinya ADO juga memiliki koleksi, properti dan metode, diantaranya
adalah ADO objek Model, Objek Command, Objek Connection, Objek Error, Objek
Field, Objek Parameter, Objek Property, Objek Recordset, Metode AddNew, Append,
metode delete, metode execute, Properti AbsolutePage, Absoluteposition, dll.
>> ODBC
Untuk dapat
mengakses sumber daya OLE DB, langkah pertama yang harus dilakukan adalah
memberitahukan kepada ADO dimana diletakan file sumber database tersebut.
Conection string yang digunakan
berbeda-beda tergantung pada sumber data Database yang kita buat.
• Sumber data Microsoft Access menggunakan
OLE Dbnya = Provider=Microsoft.Jet.OLEDB.4.4;Data Source= letak file.mdb
•
Microsoft SQL Server = Provider =
SQLOLEDB.1;Data Source = letak database server
•
Oracle = Provider = MSDAORA.1;Data Source
= letak database pada server
•
Microsoft Indexing service =
Provider=MSIDXS.1;Data Source = letak file
Contohnya ;
<%
Set cnn =
Server.CreateObject(“ADODB.Connection”) Cnn.open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Documents\data.mdb
%>
note : penulisan connection string harus dilakukan dalam satu
baris.
Dengan
menggunakan ODBC kita akan dapat lebih banyak mendapatkan driver database namun
koneksi akan lebih ribet dibandingkan dengan cara OLE DB. Pada setiap versi
Windows ODBC dapat diakses di Control Panel.
Perhatikan pada bagian atasnya terdapat beberapa tab,
diantaranya ;
User DSN :
jika digunakan maka user maka hanya komputer tersebut saja yang dapat
mengkasesnya
System DSN :
semua komputer yang memiliki jaringan yang sama maka dapat mengakes sumber
data,
File DSN :
akan memberikan akses multi user terhadap sumber data, serta dapat di transfer
dari satiu server ke server lainnya.
Contoh script
System DSN adalah ; <%
set nama objek =
Server.CreateObject(“ADODB.Connection”) Nama objek.open “nama sumber data”
%>
Sedangkan script File DSN adalah ;
<%
Set
namaobjek = Server.CreateObject(“AdoDB.Connection”) Namaobjek.open
“FILTERDSN=namafile.dsn
%>
>> Koneksi Tanpa DSN
Sebernarnya
ada trik yng sangat gampang agar kita tidak perlu mengkoneksikan script yang
kita buat dengan database, dengan demikian akan memudahkan pada waktu akan
mengupload ke Internet. Memang Microsoft pernah sesmubar bahwa dengan
menggunakan DSN maka proses akan lebih cepat. Namun belakangan ini banyak di
milis-milis dari para programmer ASP yang mengatakan bahwa bugs ‘Too Many
Client Tasks’ salah satunya terjadi karena koneksi ke database menggunakan DSN
dimana terjadi pada saat koneksi bersamaan banayk user. Kebanyakan sistem DSN
less disarankan digunakan untuk koneksi dengan Access.
Perbedaan
utama antara System DSN dengan DSN less adalah pada penyebutan nama database
secara langsung pada DSN-less beserta driver yang digunakan, sementara pada
koneksi DSN, nama database telah diwakili oleh nama dari DSN yang dibuat pada
menu ODBC.
Contoh script perbedaanya ;
String Koneksi
StrKoneksi
= “DRIVER={Microsoft Access Driver (*.mdb}; “ StrKoneksi = StrKoneksi &
“DBQ=” & Server.Mappath (“namadatabase.mdb”)
String Koneksi DSN-less
<%
Set
DBConnection = Server.CreateObject(“adodb.connection”) StrKoneksi =
“DRIVER={Microsoft Access Driver (*.mdb}; ” StrKoneksi = StrKoneksi &
“DBQ=” DB Connection.Open StrKoneksi
%>
>> Buku Tamu
<HTML>
<HEAD>
<TITLE>
Selamat Datang </TITLE> </HEAD>
<BODY>
<CENTER>
<font
face="Impact" size="7" color="#0000FF">Welcome
in Deris Stiawan<br>Official Sites</font><BR><CENTER>
<p
align="center"><i><font face="Trebuchet MS"
size="4"> Please...give me some critics or opinion about my sites
<A HREF="guest.asp"><b>click here</b><br>
<A
HREF="List.asp">Click here to see another
visitors</font></i></p>
<p align="center"></p>
</BODY>
</HTML>
selanjutnya kita buat script dan simpan dengan nama ‘guest.asp’
Latihan 4.2
<HTML>
<HEAD>
<TITLE>
Buku Tamu </TITLE> <SCRIPT LANGUAGE=VBScript> <!--
Sub btnSubmit_OnClick
Dim ojbForm
Set objForm = Document.frmGuest If objForm.txtNama.value =
"" or objForm.txtEmail.value = "" Then
MsgBox
"Anda belum mengisikan nama Anda" & chr(13) & "atau
alamat email Anda"
Else
objForm.submit End If
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
<FONT FACE="Impact"
Size=7 COLOR=#0000FF> Buku Tamu </FONT>
</CENTER>
<FORM
NAME="frmGuest" ACTION="terimakasih.asp"
METHOD="post">
<TABLE
ALIGN=Center width="380"> <TR>
<TD>
<PRE>
Nama : <INPUT TYPE=Text NAME=txtNama> <BR> Email :
<INPUT TYPE=Text NAME=txtEmail> <BR> </TD>
</TR>
<TR>
<TD>
<PRE>
Komentar:
<TEXTAREA
NAME=txtarComent ROWS=9 COLS=43> </TEXTAREA> </TD>
</TR>
<TR>
<TD>
<INPUT TYPE=Button
VALUE=Submit NAME=btnSubmit>
<INPUT TYPE=Reset>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Pada saat
halaman ‘guest.asp’ diisi oleh pengunjung dan teks tadi akan disimpan kedalam
sebuah database (Access) berilah nama ‘BukuTamu.mdb’. Kita buat dulu table
dalam database access. Adapun struktur tabelnya adalah ;
Field
|
Tipe Data
|
Keterangan
|
Indeks
|
Autonumber
|
Kunci
primer
|
Tanggal
|
Date
time
|
-
|
Nama
|
Text
|
Panjang
30
|
Email
|
Text
|
30
|
Komentar
|
Memo
|
-
|
Buatlah halaman untuk memperlihatkan
pengunjung yang pernah mengisi buku tamu kita dan simpan dengan nama terimakasih.asp.
Seperti pada tampilan 4.3
Latihan 4.3
<%
Option Explicit %>
<HTML>
<HEAD>
<TITLE>
Buku Tamu </TITLE> </HEAD>
<BODY>
<!--#Include
File="adovbs.inc"-->
<CENTER>
<FONT FACE=Impact SIZE=7
COLOR=#0000FF> GuestBook List</FONT><FONT FACE=Verdana SIZE=5
COLOR=#f7efde><HR>
</FONT>
</CENTER>
<%
Dim objConn
Dim ObjRset Dim filePath Dim strSQL Dim tombol Dim hlm
Dim i
'---Mapping file
BukuTamu.mdb---
filePath =
Server.MapPath("BukuTamu.mdb")
'---Definisi pernyataan
SQL---
strSQL = "SELECT * FROM
Guest"
'---Membuka koneksi---
Set objConn
= Server.CreateObject("ADODB.Connection") objConn.Open
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
'---Definisi Recordset---
Set objRset =
Server.CreateObject("ADODB.Recordset")
'---Menentukan halaman
aktif---
tombol =
Request.Form("tombol") If Request.Form("hlm") =
"" Then
hlm = 1
Else
hlm = Request.Form("hlm") End If
'---Menampilkan 5 record per
halaman---
objRset.Open
strSQL, objConn, adOpenStatic objRset.PageSize = 5
'---Mengatur halaman---
If tombol =
"Prev 5" or tombol = "Next 5" Then Select Case tombol
Case "Prev 5"
If hlm > 1 Then
hlm = hlm - 1
Else
hlm = 1
End If
Case "Next 5"
If objRset.AbsolutePage < objRset.PageCount Then
hlm = hlm + 1
Else
hlm = objRset.PageCount
End If
Case Else
hlm = 1
End Select
End If
objRset.AbsolutePage
= hlm %>
<!--Menampilkan data
dengan tabel-->
<TABLE
BORDER=1> <!--Membuat judul tabel--> <TR>
<TD
WIDTH=20% BGCOLOR=#80f6ac> Tanggal </TD> <TD WIDTH=20%
BGCOLOR=#80f6ac> Nama </TD> <TD WIDTH=20% BGCOLOR=#80f6ac> Email
</TD> <TD WIDTH=40% BGCOLOR=#80f6ac> Komentar </TD>
</TR>
<!--Menampilkan
data-->
<% For i
= 1 to objRset.PageSize %> <TR>
<TD WIDTH=20% BGCOLOR=#f7efde>
<%=objRset("Tanggal")%> </TD>
<TD WIDTH=20% BGCOLOR=#f7efde>
<%=objRset("Nama")%>
</TD>
<TD WIDTH=20% BGCOLOR=#f7efde>
<%=objRset("Email")%>
</TD>
<TD WIDTH=40% BGCOLOR=#f7efde>
<%=objRset("Komentar")%> </TD> </TR>
<!--Memanggil record
berikutnya-->
<%
objRset.MoveNext
If objRset.EOF Then
Exit For End If
%>
</TABLE>
<!--Membuat tombol
pengatur halaman-->
<FORM ACTION=list.asp
METHOD="POST">
<INPUT TYPE="Hidden"
NAME="hlm" Value="<%= hlm %>">
<% If hlm > 1 Then %>
<INPUT
TYPE="Submit" Name="tombol" Value="Prev 5">
<% End If %>
<% If hlm < objRset.PageCount Then
%>
<INPUT
TYPE="Submit" Name="tombol" Value="Next 5">
<% End If %>
</FORM>
<CENTER>
<FONT FACE=Technical SIZE=4
COLOR=#f7efde>
<A
HREF="default.asp"><Click here to Menu</font>
</BODY>
</HTML>
>> Project II – Buku Tamu >>
Script kali
ini kita akan menggunakan database untuk menyimpan datanya, buatlah database
terlebih dahulu dengan menggunakan Access, nama databasenya adalah data.mdb dan
tabel nya diberi nama Guest.
Langkah
pertama buatlah latihan 4.1 dibawah ini dengan menggunakan FrontPage 2003,
simpan dengan nama ‘password.asp’.
Latihan 4.5
Password.asp
<html>
<head>
<title>contoh
function</title> </head>
<body>
<script language="vbscript">
function
login_onsubmit
if document.login.txtlogin.value ="
" then
login_onsubmit = false
msgbox "Maaf Login Harus
Diisi..",48+1,"Konfirmasi" else
if document.login.txtpass.value =" " then
login_onsubmit = false
alert "Password Harus Diisi.." else
if document.login.txtlogin.value
="Deris" then
if
document.login.txtpass.value ="Stiawan" then login_onsubmit = True
else
login_onsubmit = false
msgbox
"Password Anda Salah",vbcritical end if
else
login_onsubmit = false
msgbox "Maaf Login
Salah",vbcritical
end if end if end if
end function
</script>
<Form
method="POST" Action="Tampilan.asp" name="LOGIN"
<Table Border=1>
<tr>
<td><b>Login
</td></b><td><Input Type="text" Name="txtlogin"
Size=10></td>
</tr>
<br>
<tr>
<td><b>Password
</td></b><td><Input Type="password"
Name="txtpass" Size=10></td>
</tr>
</Table>
<P
align="center"><Input Type="Submit"
value="Kirim" Name="BtnKirim">
<Input
Type="Reset" Value="Batal" Name="BtnBatal">
</form>
</html>
Latihan 4.6
Pada saat
pengujung mengisi Login dan Password dengan benar maka akan diteruskan ke
halaman ‘Tampilan.asp’. adapun scriptnya dapat dilihat dibawah ini,
namun apabila pengunjung salah memasukan password atau login maka akan keluar
kota message box. Pada tampilan.asp akan terlihat isian pada kolom Login dan
Password pengunjung.
Tampilan.asp
<html>
<head>
<title>contoh
function</title> </head>
<body>
<h1>
Selamat Datang Sahabatku yang baik </H1> <hr>
Selamat
Siang : <%=Request.form("Txtlogin")%><BR> Password anda :
<%=Request.form("Txtpass")%><BR>
<A Href=Biodata.asp> Isi Buku
Tamu</A><BR>
<A Href=bukutamu.asp>tampilkan buku
tamu</A><BR>
</body>
</html>
Latihan 4.7
Dari halaman
tampilan.asp pengunjung dapat memilih Isi buku tamu atau melihat isi buku tamu.
Maka jika pengunjung memilih untuk mengisi buku tamu maka kita harus membuat
script yang akan menampung beberapa pertanyaan dasar.
Biodata.asp
<html>
<head>
<title>contoh
function</title> </head>
<body>
<B><CENTER>
BIODATA PENGUNJUNG<br> OFFICIAL SITES <HR>
</HR>
</CENTER>
</B>
<Form
Action="Proses1.asp" method=POST name=FrmIsi> <Table
border=0>
<td> Nama
Anda</td><td>:</td><td><input Type=text Name=txtname
size=30
maxlength=30></td><tr>
<td>Alamat
Anda</td><td>:</td><td><input Type=text
Name=txtalamat
size=15 maxlength=15><td><tr>
<td>Kota/propinsi</td><td>:</td><td><input
Type=text Name=txtkota
size=15
maxlength=15><input type=text name=txtpropinsi size=15
maxlength=15></td><tr>
<td>No.Telp/
HP </td><td>:</td><td><input Type=text
Name=txtTelpon
size=15 maxlength=30></td><tr>
<td Colspan=3
align=center><Input type=submit value="proses">
<input
type=reset value="batal"></td> </table>
<script language="vbscript">
function frmisi_onsubmit frmIsi_onsubmit=true
end function
</script>
<a
href=proses1.asp>kembali</a> </body>
</html>
Latihan 4.8
Pada saat
pengunjung mengisi form pada biodata.asp, maka isian tersebut akan diproses
pada ‘proses1.asp’. halaman ini hanya sebagai konfirmasi untuk
mengegaskan bahwa form telah diisi.
Proses1.asp
<%
Dim DB
set db =
server.createobject("ADODB.Connection")
Satu baris DB.open("Provider=Microsoft.jet.OLEDB.4.0;Data
Source="&Server.mappath("Data.mdb"))
dim rs
set rs =
server.createobject ("ADODB.Recordset") RS.Open "tbldata",
DB,adOpenkeyset,3
rs.addnew
rs("Nama")=request.form("txtname")
rs("Alamat")=request.form("txtalamat")
rs("kota")=request.form("txtkota")
rs("Propinsi")=request.form("txtPropinsi")
rs("Telpon")=request.form("txttelpon")
rs.update
response.write
"<b><center><u>" response.write "Terima Kasih,"
response.write "</B></CENTER></U>" response.write
"<HR>" response.write "<BR>"
response.write
"Data-data Anda Sudah Disimpan" response.write "<BR>"
%>
<B><a href=bukutamu.asp>Tabel
Konfirmasi</a></b>
Latihan 4.9
Pada saat
pengunjung telah mengisi form bukutamu,semua data akan tersimpan pada database
Access di ‘data.mdb’. jika pengunjung ingin melihat semua data yang telah diisi
oleh pengunjung lainnya, maka kita harus membuat suatu script ‘bukutamu.asp’.
bukutamu.asp
<html>
<head>
<title>
ISI BUKU TAMU PENGUNJUNG</title> </head>
<body>
<b><a
href="password.asp">Kembali</a></b><br>
<b><center><H1>Sahabat-Sahabatku Yang Baik
<br><H1> <br><br>
</b>
<%
Dim DB
set db = server.createobject("ADODB.Connection")
DB.open("Provider=Microsoft.jet.OLEDB.4.0;Data
Satu baris
Source="&Server.mappath("data.mdb"))
dim rs
set rs =
server.createobject("ADODB.Recordset") RS.Open "select * From
tbldata",DB
If rs.EOF and RS.BOF then Response.write "Maaf Database
kosong"
else
response.write "<table
border>"
response.write
"<tr>" response.write "<td><b>"
response.write "Nama Sahabat" response.write
"</B></td>"
response.write
"<td><b>" response.write "Alamat"
response.write "</B></td>"
response.write
"<td><b>" response.write "Kota" response.write
"</B></td>"
response.write
"<td><b>" response.write "Propinsi"
response.write
"</B></td>"
response.write
"<td><b>" response.write "Telpon"
response.write "</B></td>" response.write
"<HR>" response.write "</TR>"
rs.movefirst
while not rs.eof
response.write
"<tr>" response.write "<td>" response.write
rs.fields("Nama") response.write "</TD>"
response.write
"<td>" response.write rs.fields("Alamat")
response.write "</TD>"
response.write
"<td>" response.write rs.fields("Kota")
response.write "</TD>"
response.write
"<td>" response.write rs.fields("Propinsi")
response.write "</TD>"
response.write
"<td>" response.write rs.fields("Telpon")
response.write "</TD>" response.write "</Tr>"
rs.movenext
wend
end if
response.write "</table>" %>
</body>
>> Polling Pendapat Sederhana
Program jajak
pendapat umumnya digunakan untuk melihat dan mencari data tentang sesuatu dalam
suatu populasi. Misalnya meminta para pengunjung untuk memilih Sistem Operasi
apa yang sering mereka gunakan tanpa menggunakan koneksi dengan DSN.
Latihan 4.10
<HTML>
<HEAD>
<TITLE>
Jajak Pendapat </TITLE> </HEAD>
<BODY>
<%
Session("sesTanda")
= "" %>
<TABLE
BORDER=0 WIDTH=100% CELLSPACING=0> <TR>
<TD
COLSPAN=2 BGCOLOR=#7e5fad WIDTH=100% ALIGN=Center>
<FONT
FACE=Verdana SIZE=6 COLOR=#f2fac2> Jajak Pendapat </FONT>
</TD>
</TR>
<TR>
<TD WIDTH=30% BGCOLOR=#abcdef>
<FORM
NAME=frmPoll ACTION=Result.asp METHOD=post> <INPUT TYPE=hidden
Name=hidTanda VALUE="">
<BR>
Menurut Anda, sistem operasi manakah yang paling baik?
<BR>
<INPUT TYPE=Radio NAME=radOS
VALUE="A"> Windows 9X
<BR>
<INPUT
TYPE=Radio NAME=radOS VALUE="B"> Windows NT/2000 <BR>
<INPUT TYPE=Radio NAME=radOS VALUE="C"> UNIX
<BR> <INPUT TYPE=Radio NAME=radOS VALUE="D"> Linux
<BR> <INPUT TYPE=Radio NAME=radOS VALUE="E"> BeOS
<BR> <INPUT TYPE=Radio NAME=radOS VALUE="F"> OS/2
<BR> <INPUT TYPE=Radio NAME=radOS VALUE="G"> DOS
<BR> <BR>
<INPUT TYPE=Submit
NAME=btnSubmit VALUE=Vote!> </FORM>
</TD>
<TD
WIDTH=80% BGCOLOR=#f7efde ALIGN=Center> <FONT FACE=Technical SIZE=4>
Kami adalah sebuah perusahaan yang bergerak di bidang komputer
dan ingin mengumpulkan data untuk keperluan penelitian kami. Mohon partisipasi
Anda untuk mengisi jajak pendapat ini.
</FONT>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Latihan 4.11
<HTML>
<HEAD>
<TITLE> Jajak Pendapat </TITLE>
<BODY
BGCOLOR=#f7efde> <!--#Include File=adovbs.inc--> <%
dim objConn, objRset
dim reqOS, filePath, totRec
dim i, j
dim
jmlOS(10), pctOS(10), arrOS(10) dim totOS
arrOS(1) = "Windows
9X" arrOS(2) = "Windows NT/2000" arrOS(3) = "UNIX"
arrOS(4) =
"Linux" arrOS(5) = "BeOS"
arrOS(6) =
"OS2" arrOS(7) = "DOS"
'---Mengambil nilai dari
form sebelumnya---
reqOS =
Request.Form("radOS")
'---Verifikasi form---
if
(Session("sesTanda")=Session.SessionID) then Response.Write
"<CENTER> <H1>" & _
"Maaf, Anda tidak dapat mengisi lebih
dari satu kali"
& _
"<H1>
</CENTER>"
else
'---Membuka koneksi---
filePath=Server.MapPath("Polling.mdb")
Set objConn
= Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" + filePath
'---Mendeklarasikan
Recordset---
set objRset
= Server.CreateObject("ADODB.Recordset") objRset.Open
"Hasil", objConn, adOpenStatic, adLockOptimistic, adCmdTable
'---Memasukkan data ke dalam
tabel---
objRset.AddNew
if reqOS="A" then objRset("Win9X")=1
end if
if reqOS="B" then objRset("WinNT2K")=1
end if
if reqOS="C" then objRset("UNIX")=1
end if
if reqOS="D" then objRset("Linux")=1
end if
if reqOS="E" then objRset("BeOS")=1
end if
if reqOS="F" then objRset("OS2")=1
end if
if reqOS="G" then objRset("DOS")=1
end if
objRset.Update
Session("sesTanda")
= Session.SessionID Response.write "<CENTER> <H1>" &
_
"Terima Kasih
</H1> <BR> <H2> Atas kesediaan Anda " & _
"mengisi jajak pendapat ini </H2> <HR> </CENTER>"
'---Memasukkan record ke dalam array---
totRec =
objRset.RecordCount objRset.MoveFirst
getRec = objRset.GetRows
for i=1 to 7
for j=0 to totRec-1
jmlOS(i) = jmlOS(i) + getRec(i,j)
next
totOS = totOS + jmlOS(i)
next
for i=1 to 7
pctOS(i) = (jmlOS(i)/totOS)*100
next
%>
<!--Membuat
grafik dengan bantuan tabel--> <CENTER>
<FONT SIZE=5>
Berikut ini akan kami
tampilkan hasil jajak pendapat hingga tanggal <%=Date%>
</FONT> <BR>
<BR> </CENTER>
Jumlah
pemberi suara <%=totOS%> <BR> <BR> <%
for i=1 to 7 %>
<TABLE
BORDER=0 WIDTH=300> <TR>
<TD
WIDTH=<%=int(pctOS(i))%>% BACKGROUND=bar.bmp> </TD>
<TD WIDTH=<%=100-int(pctOS(i))%>%\>
<%=arrOS(i)%>, <%=int(pctOS(i))%>% </TD>
</TR>
</TABLE>
<% next
end If %> </BODY> </HTML>
Thanks for reading & sharing Kamar Pekick
0 komentar:
Post a Comment