ActiveX Data Object (ADO) Oleh : Edi Sugiarto, S.Kom, M.Kom
Pendahuluan • ActiveX Data Object merupakan komponen standar microsoft untuk akses data. • ADO dapat digunakan untuk mengakses berbagai sumber data, termasuk seperti ms access dan sql server, serta database non microsoft seperti oracle, sybase, mysql • Pada akhirnya ADO menggantikan DAO dan RDO yang merupakan teknologi akses data sebelumnya.
Apa Itu ADO ? • ADO merupakan antarmuka pemrograman tingkat tinggi untuk OLE DB. • ADO menggunakan hirarki Objek Model untuk memungkinkan aplikasi membuat, menerima, mengubah, dan menghapus data dari sumber data yang didukung oleh OLE DB. • ADO berisi serangkaian Objek COM berbasis hirarki dan koleksi. • Diperkenalkan pertama kali pada 1996
• ADO terdiri dari 9 objek dan 4 koleksi. • Koleksi ADO antara lain : – Fields : berisi kumpulan field objek – Properties : merupakan perangkat yang digunakan untuk pembeda antar objek – Parameters : objek dapat memiliki beberapa parameter perintah untuk mengubah perilakunya – Error : digunakan untuk menangani kesalahan.
• Objek ADO Antaralain : • • • • • •
Connection Command Recordset Record Stream Parameter
• Field • Property • Error
Bagaimana Cara Kerja ADO? • Membuat Koneksi ke Database • Menjalankan Perintah • Mengambil dan Memanipulasi Data
Membuat Koneksi ke Database • ADO membuat koneksi ke database menggunakan objek Connection • Objek Connection menjadi pintu gerbang ke dalam database sehingga semua operasi yang dilakukan pada database harus melalui objek Connection ini. • Untuk membuat koneksi kita perlu memberitahu pada ADO tentang informasi database mana yang akan di akses berikut attribut yang lain termasuk user dan password
Objek Connection pada ADO Dim conn As New ADODB.Connection • Properties dan fungsi yang sering digunakan : – – – – – –
ConnectionString CursorLocation Open BeginTrans CommitTrans Execute
Contoh menggunakan Objek Connection • Contoh koneksi menggunakan OLE DB Private Sub Form_Load() Dim conn As New ADODB.Connection Set conn = New ADODB.Connection conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False; User ID=sa; Password=sa; Initial Catalog=APLBISNIS_GENAP2010;Data Source=ENIGMA" conn.Open End Sub
Contoh menggunakan Objek Connection • Contoh koneksi menggunakan ODBC DSN Private Sub Form_Load() Dim conn As New ADODB.Connection Set conn = New ADODB.Connection conn.ConnectionString = "dsn=pa_genap2010" conn.Open End Sub
Menjalankan Perintah • Setelah ADO membuka koneksi maka kita dapat menentukan satu atau lebih perintah melalui ADO tersebut terhadap suatu database. • Perintah-perintah terbebut dapat berupa – Pemanggilan tabel – Pernyataan SQL – Atau pemanggilan prosedur tersimpan (Store Procedure)
• Kita dapat menyiapkan perintah yang akan dijalankan pada objek Command • Beberapa properties yang sering digunakan pada objek Command – Active Connection : untuk menentukan sebuah objek Connection – CommandText : berisi berupa pernyataan SQL – CommandType : menyatakan jenis/tipe perintah – Execute : menjalankan pernyataan
Objek Command pada ADO Dim command As New ADODB.command • Properties dan Fungsi yang sering digunakan : – – – – –
ActiveConnection CommandText CommandType CreateParameter Executer, dll.
Contoh menggunakan Objek Command Private Sub cmdSimpan_Click() Dim command As New ADODB.command Set command = New ADODB.command command.ActiveConnection = conn command.CommandType = adCmdText command.CommandText = "insert into pa_pelanggan " _ & "(kode, nama, alamat) values ('PL008‘ " _ & ",'BP. LUTFI ARIF','JL. PEMUDA NO 5 SEMARANG')" command.Execute End Sub
Mengambil dan Memanipulasi Data • Record-record yang dihasilkan pernyataan SQL direpresentasikan oleh sebuah objek yang dikenal dengan istilah Cursor atau Recordset (pada ADO) • Cursor adalah sekumpulan baris yang dihasilkan dari satu atau lebih tabel, cursor merupakan informasi mentah yang diberikan DBMS dan berada pada server.
• Recordset adalah sebuah objek ADO yang menyimpan baris-baris yang dihasilkan dari pernyataan SQL, • Objek recordset juga dapat berada pada client atau pada server • Objek recordset menjadi inti dari pemrograman database karena sebagian besar operasi yang anda lakukan pada database berlangsung melalui objek recordset.
Objek Recordset pada ADO Dim rs As New ADODB.Recordset • Properties dan Fungsi yang sering digunakan : – Open – ActiveConnection – AddNew – Find – CursorLocation – CursorType – MoveNext, MovePrev, MoveLast, MoveFirst.
Contoh Menggunakan Objek Recordset Private Sub cmdCari_Click() Dim rs As New ADODB.Recordset Set rs = conn.Execute("select * from pa_pelanggan " _ & " where kode='PL008'") If Not rs.EOF Then MsgBox "Pelanggan dengan nama " & rs!nama & " ditemukan" End If End Sub
Ada Pertanyaan ?
Objek Utama ADO
Objek Utama ADO • ActiveX Data Objek memiliki tiga Objek Utama untuk mendukung kemampuan akses data. • Tiga objek tersebut antaralain : – Objek Connection – Objek Command, dan – Objek Recordset
Objek Connection • Berfungsi untuk melakukan koneksi ke database. • Selain berfungsi membuat dan menutup koneksi pada database, objek Connection dapat menjalankan perintah pada database dan mengambil Recordset
Menggunakan ConnectionString • Object Connection memiliki properties yg paling penting yaknik ConnectionString. • Properties ConnectionString digunakan untuk menentukan database mana yang akan di hubungkan • ConnectionString merupakan sebuah string panjang dengan beberapa atribut yang dipisahkan oleh titik koma.
Contoh ConnectionString • Koneksi ke Oracle database dengan OLEDB: Provider=OraOLEDB.Oracle.1;Password=<passwd>;Persist Security Info=True; User ID=<user>; Data Source=
;
• Koneksi ke Oracle database dengan ODBC: Driver={Microsoft ODBC for Oracle}; Server=<server> Uid=<user>; Pwd=<password>;
• Koneksi ke SQL Server database dengan OLEDB: Provider=SQLOLEDB.1;Password=<user>;Persist Security Info=True;User ID=<user>;Initial Catalog=;Data Source=(local);
• Koneksi ke SQL Server database dengan ODBC: Driver={SQL Server};Server=<server>; Database=; Uid=<user>;Pwd=<password>;
• Koneksi ke Mysql database dengan OLEDB: Provider=MySQLProv; Data Source= ; User Id=<user>; Password=<pasword>;
• Koneksi ke Mysql database dengan ODBC: Driver={mySQL ODBC 3.51 Driver}; Server=<server>; Port=3306; Database=; Uid=<user>; Pwd=<password>;
• Koneksi ke MS Access Database dengan OLEDB: Provider=Microsoft.Jet.OLEDB.4.0; Data Source= c:\<path>\myDb.mdb; User Id=<user>; Password=<password>
• Koneksi ke MS Access Database dengan ODBC: Driver={Microsoft Access Driver (*.mdb)}; Dbq=c:\<path>\mydb.mdb; Uid=<user>;Pwd=<password>;
Koneksi Berbasis DSN • DSN merupakan struktur data spesifik yang berisi informasi tentang sumber data tertentu yang dikenal oleh komputer. • DSN hanya menggambarkan nama dari kumpulan pengaturan yang ada pada ODBC. • Dengan DSN maka ConnectionString menjadi sangat sederhana.
Contoh Koneksi berbasis DSN • Koneksi string menggunakan dsn cukup dengan menyertakan dsn dan dilanjutkan nama dari dsn yang telah dibuat. dsn= Contoh Conn.open “dsn=toko_buku”
Membuka dan Menutup koneksi • Untuk membuka koneksi maka gunakan metode open conn.open • Untuk membuka koneksi gunakan metode close conn.close Set conn = nothing
Objek Command • Bertugas membawa informasi mengenai perintah-perintah yang akan dikerjakan • Perintah dapat berupa nama tabel, pernyataan SQL, atau prosedur tersimpan (Store Procedure) • Perintah tersebut ditentukan oleh properti CommandText
Properties CommandType • Objek Command memiliki properties CommandType yang digunakan untuk menentukan tipe perintah yang dikerjakan antaralain : adCmdText : Pernyataan SQL adCmdStoredProc : Store Procedure adCmdTable : Perintah SQL yang Menyatakan Nama Tabel adCmdTableDirect : Perintah menggunakan nama tabel langsung – adCmdUknown : perintah tidak dikenali, DBMS akan menebak dan menjalankan.
– – – –
Status pada Objek Command • Objek Command memiliki properties State yang digunakan untuk menentukan status saat ini dari perintah. • Status tersebut antaralain: – – – –
adStateClosed : ditutup adStateOpen : dibuka adStateExecuting : dijalankan adStateFetching : membaca baris
Objek Recordset • merupakan objek yang dapat diprogram dimana cursor-cursor dsimpan. • Dengan objek Recordset, kita dapat memanipulasi baris-baris cursor, melihat fieldfieldnya, serta meng-update tabel-tabel yang mendasarinya • Objek Recordset dapat memilih lokasi cursor, apakah akan berada pada server atau di download ke client.
Jenis Cursor pada Objek Recordset • ADO mendukung empat jenis cursor, dan kita dapat menentukan jenis cursor yang diinginkan dengan menentukan nilai dari properties CursorType • Cursor tersebut antaralain : – – – –
adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
Cursor Forward-Only (adOpenForwardOnly) • • • •
Merupakan Cursor default dari ADO Hanya satu kali pembacaan baris Sederhana namun terbatas Tidak perlu menyimpan informasi mengenai baris yang telah dibaca • Cocok jika digunakan pada pembacaan record tabel dan bukan untuk operasi penyisipan atau pencarian
Cursor Statis (adOpenStatic) • Lebih fleksibel namun lebih mahal dari cursor forward-only • Dapat melihat baris ke semua arah • Namun tidak dapat melihat modifikasi yang telah dibuat oleh user lain • Tidak memperhatikan perubahan terakhir dari data sumber.
Cursor Keyset (adOpenKeyset) • Dengan cursor keyset server tidak mengambil baris sesungguhnya dari database • Server membuat daftar kunci pada baris-baris milik cursor dan menggunakan kunci tersebut untuk mengakses filed-field dari sumber data • Dapat melihat perubahan setiap kali user berpindah ke baris lain cursor • Dapat melihat baris ke semua arah
Cursor Dinamis (adOpenDynamic) • Cursor paling dinamis dan paling mahal • Serupa dengan keyset yakni tidak membaca baris-baris namun melalui pointer yang menunjuk pada baris sesungguhnya • Jika terjadi perubahan data maka kunci untuk baris terbaru disisipkan ke dalam cursor
Lokasi Cursor pada Objek Recordset • Sebuah cursor dapat berada pada server maupun pada client, dalam hal ini bergantung pada nilai properties CursorLocation. • Konstanta untuk cursor location antaralain: – adUseClient : membuka cursor pada client – adUseServer : membuka cursor pada server
Ada Pertanyaan ?
Terima kasih
Daftar Pustaka • Greg Perry (2000), “Sams Teach Yourself Visual Basic 6 in 21 Days, Professional Reference Edition”, Macmillan Computer Publishing, ISBN: 0672315424. • Francesco Balena (1999),”Programming Microsoft Visual Basic 6.0”, Microsoft Press, ISBN : 0-7356-0558-0