OLE DB adalah set interface yang menyediakan aplikasi seragam dalam mengakses data yang disimpan di sumber informasi yang berlainan tanpa tergantung pada lokasi maupun tipe. Umumnya, OLE DB cenderung mempermudah aplikasi-aplikasi dalam mengakses data yang tersimpan pada DBMS (Database Management System) dan sumber-sumber informasi lainnya. Sumber-sumber DBMS antara lain:
1. Mainframe Database seperti IMS dan DB2 2. Server Database seperti Oracle dan SQL Server
3. Desktop Database seperti Access, Paradox dan Foxpro Sumber-sumber lain antara lain:
Informasi yang tersimpan pada file system untuk Windows NT atau UNIX File Indexed-sequential, Sistem Email seperti Exchange, Spreadsheets, tool project management, dan sumber-sumber lainnya.
Biasanya aplikasi yang berbasis ADO menggunakan operasi-operasi untuk mengakses data sourcenya dengan cara sebagai berikut :
1. Create the Connection Object, Menggunakan connection string tertentu yang mengandung informasi seperti nama data source, identifikasi user dan passwordnya.
2. Open the Connection, Membuka connection ADO ke data sourcenya.
3. Execute an SQL statement, Begitu connectionnya terhubung, maka selanjutnya adalah menjalankan suatu query, yaitu tabel(-tabel) yang akan dibuka.
4. Use the records returned from the query, Sekarang record-recordnya siap untuk dibrowse maupun diupdate. Kita dapat menambahkan, mengupdate, menghapus data pada recordset tergantung dari tipe cursornya. Cursor adalah tabel temporari pada memori yang mengandung hasil dari query kita sebelumnya.
5. Terminate the connection, Koneksi ke data source diputuskan.
Berikut adalah perbedaan connection string untuk setiap jenis OLEDB Provider:
OLEDB Provider Connection String
Microsoft Jet (Access)
“Provider = Microsoft.Jet.Oledb.4.0; Data Source = namadb.mdb”
Ms ODBC Driver
“Provider=MSDASQL.1;UID=admin; Extended Properties=”DBQ=c:\Program files\Microsoft Visual Studio\VB98\NWIND.MDB;FIL=MS Access;”
Oracle “Provider = MSDAORA; Data Source =
NmServer;UserID = Stefan; Password = 123456” SQL Server
“Provider=SQLOLEDB.1;Persist Security
Info=False;User ID=sa;Initial Catalog=Proyek;Data Source=Stefan”
Tabel di bawah ini menggambarkan event-event yang berhubungan dengan objek connection:
Event Keterangan
AbortTransaction Terjadi setelah method RollbackTrans dipanggil. BeginTransaction Terjadi setelah method BeginTrans dipanggil. CommitTransaction Terjadi setelah method CommitTrans dipanggil. ConnectComplete Terjadi saat koneksi yang dicoba berhasil, gagal, atau
timed out.
Disconnect Terjadi saat sebuah koneksi yang aktif ditutup. ExecuteComplex Terjadi setelah method Execute dipanggil.
Info Message Terjadi saat message dikembalikan dari OLE DB atau data source.
WillConnect Terjadi setelah method Open dipanggil, tetapi sebelum koneksi dibuat.
WillExecute Terjadi setelah method Execute dipanggil, tetapi sebelum perintah selesai.
Untuk menggunakan teknologi ini maka seseorang harus melakukan setting terlebih dahulu. Berikut ini adalah aturan penggunaan dari ADO.
1. Pilih menu Project 2. Pilih References
3. Pilih Microsoft ActiveX Data Objects 2.x Library
Kita juga bisa menggunakan ADO Control, caranya adalah: 1. Pilih menu Project
2. Pilih Component
3. Pilih Microsoft ADO Data Control 6.0 (OLE DB)
Secara umum, setiap database dibuka dengan method Open:
Object.Open Source, ActiveConnection, CursorType, LockType,
Options
Source berisi perintah untuk mengakses data dalam database.
ActiveConnection berisi sumber data dari source. Yaitu koneksi ke file database.
Argument Description
Data Source
Argumen ini menentukan nama data source untuk koneksi. Bersifat optional saat dipakai dengan OLE DB Provider untuk AS/400 & VSAM atau OLE Provider untuk DB2. File Name Argumen ini menentukan nama file provider specifik yang
berisi info preset koneksi. Argument ini tak bisa dipakai jika argumen Provider dilewati. Tak didukung oleh OLE DB Provider untuk AS/400 & VSAM.
Location Argumen ini menentukan nama Remote Database yang digunakan untuk koneksi ke sistem OS/400. Parameter ini
bersifat optional untuk koneksi ke sistem mainframe.
Password Argumen ini menentukan validitas password mainframe atau AS/400 saat membuka koneksi. Password ini dipakai oleh Microsoft® SNA Server untuk validasi user yang log on ke sistem host tujuan dan memiliki hak akses file yang sesuai. Provider Argument ini menentukan nama provider yang dipakai
koneksi. Pada OLE DB Provider untuk AS/400 & VSAM, string Provider harus di set "SNAOLEDB". Pada OLE DB Provider untuk DB2, string Provider harus di set menjadi "DB2OLEDB". Pada ODBC Driver untuk DB2, Provider di set "MSDASQL" atau tak dipakai sebagai bagian dari ConnectionString sejak nilai ini di default untuk ADO. Remote
Provider
Argumen ini menentukan nama provider untuk dipakai saat membuka koneksi client-side (hanya untuk layanan Remote data). Tidak didukung oleh OLE DB Provider untuk AS/400 & VSAM maupun OLE DB Provider untuk DB2.
Remote Server
Argumen ini menentukan nama path server yang dipakai saat membuka koneksi client-side (hanya untuk layanan Remote Data). Tidak didukung oleh OLE DB Provider untuk AS/400 & VSAM maupun OLE DB Provider untuk DB2. User ID Argumen ini menentukan nama user yang valid pada
mainframe atau AS/400 saat membuka koneksi. Nama user ini dipakai oleh SNA Server untuk validasi user apakah dapat log on ke sistem tujuan dan memiliki hak akses file.
CursorType menset nilai CursorTypeEnum yang menenetukan tipe kursor yang
digunakan saat membuka Recordset.
Enumeration Value Description
adOpenUnspecified -1 Mengindikasikan nilai unspecified untuk
CursorType. Nilai ini tak didukung pada
OLE DB Provider untuk AS/400 & VSAM. adOpenForwardOnly 0 Bila nilai ini diset maka kursor / pointer
record hanya bisa maju dan tidak dapat kembali ke record sebelumnya. Pada OLE DB Provider untuk AS/400 & VSAM cursor ini dipetakan ke adOpenDynamic. adOpenKeyset 1 Membuka database dengan pemberian
lock pada user. Jika seorang user sedang mengupdate maka user lain tidak dapat mengupdate dan harus menunggu sampai user itu selesai. User dapat melihat perubahan data tapi tidak dapat melihat penambahan data. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.
adOpenDynamic 2 Dengan cursor ini, penambahan,
perubahan, dan penghapusan data oleh user lain akan terlihat oleh user lain, dan semua tipe pergerakan yang melalui recordset diperbolehkan, kecuali bookmark jika providernya tak
mendukung. User juga dapat melakukan perubahan terhadap data pada waktu yang bersamaan. Ini adalah CursorType satu-satunya yag didukung oleh OLE DB Provider untuk AS/400 & VSAM.
adOpenStatic 3 Jika ada user yang mengupdate data maka user lain tidak dapat melihat
perubahan data. User lain juga tak dapat mengubah data tersebut pada waktu yang sama. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.
LockType menset nilai LockTypeEnum untuk mengatur concurrency saat
membuka recordset. Secara default di set adLockReadOnly
Enumeration Value Description
adLockUnspecified -1 Set nilai unspecified untuk LockType. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM. adLockReadOnly 1 Membuka Recordset object dengan
atribut read-only dan data tak dapat diubah.
adLockPessimistic 2 Membuka recordset dengan
pessimistic locking. Record-by-record, OLE DB Provider melakukan apa yang penting untuk memastikan berhasilnya editing pada records, biasanya dengan mengunci records pada data source dengan segera ketika editing.
adLockOptimistic 3 Membuka recordset dengan optimistic locking. Record-by-record, OLE DB Provider hanya mengunci records saat Update dilakukan.
adLockBatchOptimistic 4 Membuka Recordset dengan batch optimistic locking. Data yang diupdate disimpan dalam bentuk batch
kemudian diupdate sekaligus dengan perintah UpdateBatch.
Options menset nilai CommandTypeEnum yang mengindikasi bagaimana
provider mengevaluasi parameter Source.
Enumeration Value Description
adCmdUnspecified -1 Mengindikasikan bahwa properti CommandText tak ditentukan. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.
adCmdText 1 Evaluasi properti CommandText sebagai defenisi tekstual dari perintah atau stored procedure call.
adCmdTable 2 Evaluasi properti CommandText sebagai nama tabel. Nilai ini tak
didukung pada OLE DB Provider untuk AS/400 & VSAM.
adCmdStoredProc 4 Evaluasi properti CommandText
sebagai nama stored procedure. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.
adCmdUnknown 8 Mengindikasikan bahwa tipe perintah dalam properti CommandText tidak diketahui. Ini adalah nilai default. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.
Berikut adalah contoh sederhana koneksi ke database access.
Buka Vb anda dan pilih Standard exe. Tambahkan komponen Microsoft DataGrid Control 6.0 (Ole DB) dan reference ke Microsoft ActiveX Data Objects 2.x Library. Kemudian pada code window ketikkan kode berikut:
Private Sub Form_Load()
Dim db As Connection, rsProduct As Recordset Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data " & _ "Source = C:\Program Files\Microsoft Visual" & _ " Studio\VB98\NWIND.MDB;"
Set rsProduct = New Recordset
rsProduct.Open "SELECT ProductName,QuantityPerUnit," & _ "UnitPrice from Products", db, 1, 3
Set DataGrid1.DataSource = rsProduct End Sub
Untuk manipulasi dapat digunakan method .AddNew, .Delete, .Update, dll Sedangkan untuk menggeser pointer record, kita menggunakan method-method seperti .MoveFirst, .Move Last, .MoveNext, dan MovePrevious.