Thursday, November 08, 2007

Database RecordSet

Programming Language : ASP 4.x (belum .Net loh)
Platform : Web

Salah satu cara untuk terkonseksi ke database di Windows adalah melalui ADO atau ODBC, yang mana istilahnya, sampai saat ini aku gak tahu. Tapi yang mana pun, hampir sama secara teori dan praktek, yaitu ada data connection string yang harus di set baik menggunakan database server ataupun database lokal. Connection String ini bisa diset ke nama DSN aja kalo DSN nya sudah di set, tapi banyak programmer yang ogah make cara DSN dan beralih ke DSN less system.

Untuk membuka koneksi :

set dbConn=createobject("ADODB.Connection")
dbconn.cursorlocation = 3
dbconn.connectionstring= connectionString
dbconn.open
//Add something else here
dbconn.close

Nah untuk recordset :

dbCon = OpenDbConn
set dbRec = createobject("ADODB.Recordset")
dbRec.activeconnection=dbCon
dbRec.source=query
dbRec.open
//Add something else here to process dbRec
dbRec.close


Kebanyakan orang naro skrip untuk buka koneksi ke sebuah fungsi di file db.inc, kenapa? biar praktis, jadi di tiap halaman gak perlu nulis skrip koneksi terus menerus, cukup include filenya terus panggil fungsinya.

Syntax :
function OpenDbConn
set dbConn=createobject("ADODB.Connection")
dbconn.cursorlocation = 3
dbconn.connectionstring= connectionString
dbconn.open
OpenDbConn = dbconn
End function

Tapi jarang ada yang melakukan hal yang sama ke skrip recordset, kenapa ya? Karena return valuenya selalu error. Masalahnya sih sebenernya cuma pas mengembalikan objectnya saja yang harus menggunakan set.

Syntax :
Function OpenDBRSet(query)
dim dbRec
dim dbCon
dbCon = OpenDbConn
set dbRec = createobject("ADODB.Recordset")
dbRec.activeconnection=dbCon
dbRec.source=query
dbRec.open
set OpenDBRSet = dbRec
end function

Tuh, liat kan? bedanya dengan function OpenDBCon? Bukan parameternya! tapi ketika mengembalikan valuenya, ada operator set. Lihat baris diatas end function. Ini artinya recordset tidak bisa di perlakukan sama dengan tipe data, karena dia sebenarnya adalah sebuah object, sehingga harus diperlakukan seperti objek. Lalu bagaimana cara panggilnya?

Syntax:
set dbRSet = OpenDBRSet("Select . . . ")

See, cukup hanya dengan menambahkan operator set! Selanjutnya dbRSet bisa digunakan seperti biasa.

Satu lagi deh, untuk eksekusi query yang tidak memiliki hasil, juga tidak perlu repot, cukup gunakan syntaxt di bawah:

Syntax:
sub executeQuery(query)
set dbConn=createobject("ADODB.Connection")
dbconn.connectionstring= connectionString
dbconn.open
dbconn.execute query
end sub

Cara panggilnya biasa saja, tidak ada yang istimewa.

Syntax:
executeQuery("Insert into . . .")

No comments: