PENDIDIKAN JARINGAN KOMPUTER DAN SISTEM · PDF fileIII.1 Definisi ADO Connection Object ......

40
PENDIDIKAN JARINGAN KOMPUTER DAN SISTEM INFORMASI ©Copyright PIKSI-ITS 2002 Ruang C.2 Telp: (031)5929871 Fax: (03 03 Jurusan Teknik Elektro ITS Keputih Sukolilo - Surabaya 1)5929870 : [email protected]

Transcript of PENDIDIKAN JARINGAN KOMPUTER DAN SISTEM · PDF fileIII.1 Definisi ADO Connection Object ......

PENDIDIKANJARINGAN KOMPUTER

DAN SISTEM INFORMASI

©Copyright PIKSI-ITS 2002

Ruang C.2Telp: (031)5929871 Fax: (03

03 Jurusan Teknik Elektro ITS Keputih Sukolilo - Surabaya1)5929870

: [email protected]

Sistem Database i

Hak Cipta Buku dan Logo dari PIKSI – ITS ini adalah merupakan

hak cipta dari PIKSI-ITS. Dilarang memperbanyak, memfotocopy sebagian atau seluruh isi

dari buku dan logo tanpa seijin dari pihak PIKSI-ITS

Disclaimer Book and Logo PIKSI-ITS are copyright© of PIKSI-ITS

No part of this book, including interior design , cover and logo maybe reproduce without any permission from PIKSI-ITS

Sistem Database ii

Kata Pengantar

Jenis pendidikan satu tahun sekarang ini sudah mulai banyak jumlah-nya. Salah satunya adalah Pendidikan Jaringan Komputer dan Sistem Informasi – ITS atau disingkat PIKSI – ITS. PIKSI pertama mengkhususkan diri pada bidang Jaringan Komputer dan Basis Data. Kemudian menyesuaikan diri dengan perkembangan dan minat masyarakat, dibuka kelas baru Aplikasi Perkantoran. Salah satu bidang yang diajarkan PIKSI sekarang ini adalah Sistem Database. Diharapkan bahwa buku ini akan menunjuang bagi mereka yang berminat mendalami bidang ini, juga sebagai pembantu dalam perkuliahan PIKSI-ITS. Saran dan kritik anda tentang buku atau kualitas pengajaran dapat anda kirimkan ke email : [email protected]. Ketua PIKSI-ITS I Ketut Edi Purnama, MT

Sistem Database iii

Daftar Isi Kata Pengantar…………………………………………………………………….......ii Daftar Isi……………………………………………………………………………...iii Universal Data Access………………………………………………………………1-1

I.1. Sekilas tentang Universal Data Access .......................................................... 1-2 I.2. Membandingkan ADO dengan metode Data Access lain .............................. 1-3

Pengenalan Object Model ADO…………………………………………………… 2-1

II.1 Membuat Object ADO ................................................................................... 2-2 II.2 ADO Connection Object ................................................................................ 2-3 II.3 ADO Command Object.................................................................................. 2-4 II.4 ADO Recordset Object................................................................................... 2-4

II.4.1 Setting CursorType Property................................................................... 2-4 Mengatur Koneksi ke Data Source………………………………………………… 3-1

III.1 Definisi ADO Connection Object................................................................. 3-2 III.2 Membangun Koneksi .................................................................................... 3-2

III.2.1 Melakukan Update dengan Connection Object .................................... 3-3 III.2.2 Disconnecting dari Data Source............................................................. 3-4

III.3 Latihan: Membuat Koneksi........................................................................... 3-4 III.4 Menggunakan ADO Command Object......................................................... 3-5

Menerima Record dari Data Source…………………………………………………4-1

IV.1 Menggunakan ADO Recordset Object ......................................................... 4-2 IV.1.1 Menggunakan Explicit Connection Object............................................ 4-2 IV.1.2 Menggunakan Implicit Connection Object............................................ 4-3 IV.1.3 Locking the Recordset ........................................................................... 4-4

IV.2 Mengakses Record dalam Recordset ............................................................ 4-4 IV.3 Binding Control ke ADO Recordset............................................................. 4-5 IV.4 Membuat Multiple Recordset ....................................................................... 4-6

Navigating Records………………………………………………………………… 5-1

V.1 ADO Navigation Properties ........................................................................... 5-2 V.2 ADO Navigation Methods ............................................................................. 5-2 V.3 Latihan : Navigating an ADO Recordset ....................................................... 5-2

Memodifikasi Record………………………………………………………………. 6-1

VI.1 Memodifikasi dengan Perintah SQL ............................................................ 6-2 VI.2 Memodifikasi Record dalam Recordset........................................................ 6-2

VI.2.1 Menambah Rekord................................................................................. 6-2 VI.2.2 Menghapus Record ................................................................................ 6-3 VI.2.3 Modifikasi Record ................................................................................. 6-3 VI.2.4 Membatalkan Perubahan atau Penambahan Rekord.............................. 6-3

Sistem Database iv

Sistem Database v

Sistem Database Universal Data Access 1 - 1

BAB

1

Universal Data Access

Tujuan : Pada Bab Ini diharapkan mahasiswa dapat : • Mendeskripsikan tujuan dari strategy universal data access strategy • Mengidentifikasikan component dari OLE DB. • Mendefinisikan tiga bagian umum data access method. • Mendeskripsikan relationship antara OLE DB dan ADO.

Sistem Database Universal Data Access 1 - 2

I.1. Sekilas tentang Universal Data Access

Universal Data Access (UDA) adalah starategi Microsoft strategy untuk menyediakan akses ke semua type daari informasi, dari berbagai macam source disampint relational database sederhana. Data source ini termasuk mainframe ISAM/VSAM, hierarchical databases, e-mail, file systems, text, dan graphical data. OLE DB mendasari interface yang mampu UDA.

Microsoft ActiveX Data Objects (ADO) dikembangkan untuk OLE DB. ADO menggantikan database programming interfaces debelumnya, seperti DAO dan RDO. Karena ADO dibangun pada puncak dari OLE DB, ADO menguntungkan dari UDA infrastructure.

Modern data-intensive application membutuhkan penggabungan dari informasi tidak hanya dalam mengatur system database tradisional tapi juga file systems, spreadsheets, e-mail, dan banyak lagi. Kekuatan dari strategy Microsoft UDA adalah strategy is that it is delivered through a common set of object-oriented interfaces. These interfaces aere based on the Microsoft Component Object Model (COM). OLE DB, yang mana berdasar pada COM, digunakan untuk menyediakan akses ke data melewati organisasi seperti ilustrasi dalam gambar 1.1.

ambar 1.1 The universal data access architecture

bangun pada Open Database Connectivity (ODBC) application programming interface (API). Ini merupakan standart untuk mengakses semua type dari data. Dimana ODBC dibuat untuk

G

OLE DB adalah terbuka didesain terperinci untuk mem

Sistem Database Universal Data Access 1 - 3

mengakses relational databases, OLE DB didesain untuk relational dan non-relationainformation source. OLE DB termasuk langsung mendukung ODBC untuk kemampuan kedepan untuk broad range dari ODBC driver relational databasehari ini.

Component OLE DB terdiri dari data providers, data consumers, dan service compone

l

tersedia

nts, seperti diilustrasikan dalam gambar 1.2.

I.2. Membandingkan ADO dengan metode Data Access lain

Meskipun aplikasi dapat menggunakan Data Access Objects (DAO) dan Remote Data bjects (RDO) dalam Visual Basic 6.0, ADO adalah data-access method Microsoft

menganjurkan untuk suatu aplikasi database.

Semua dari data access methods ini adalah COM interfaces dan dapat digunakan dari

Gambar 1.2 OLE DB components

O

berbagai macam tools, termasuk Microsoft Visual Basic, Microsoft Access, dan Microsoft Office. Yang mana, berbedaannya adalah:

Sistem Database Universal Data Access 1 - 4

• ADO adalah object model untuk mengakses semua type data melalui OLE DB

Seperti Visual Basic, Java, C++, VBScript, dan

.

JScript dapat menggunakan ADO yang mana dapat mengakses data dari OLE DB source apa saja. Kamu

e-mail atau data yang berada pada dalam spreadsheet.

l Basic untuk mengakses ODBC data tanpa melakukan pengkodean ke ODBC API melalui

programmable object model. RDO didesain untuk mengambil keuntungan dari ti SQL

i tiga data access methods. Dengan DAO, kamu dapat mengakses data dalam Microsoft Jet databases, Microsoft Jet-connected

data sources, sepeerti FoxPro, Paradox, atau Lotus 1-2-3. Bandingkan ke ata

ula

Setelahkamu mjawaba

itu mudah menggunakan, dengan sedikit pengkodean. an akan

nternet Information

dapat menggunakan ADO untuk mengakses relational data denga baik seperti

RDO adalah object model untuk mengakses relational data melalui ODBC.

RDO didesain untuk memberikan perkembangan Visua

COM interface ke ODBC API dan menyediakan funsi dari ODBC dalam

database server yang menggunakan sophisticated query engines, seperServer dan Oracle.

DAO adalah object model untuk mengakses local atau SQL data melalui Jet.

DAO paling tua dar

ODBC databases, and installable indexed sequential access method (ISAM)

teknologi ADO terbaru dan RDO, DAO adalah terlambat, kurang mampu daccess alternative. DAO, sepeti teman, Microsoft Jet database engine, semdidesain untuk mendukung ISAM data access.

melihat setiap metode mengakses data, kamu mungkin ingin tagu mengapa embutuhkan ADO jika kamu telah menggunakan RDO/DAO. Disini dasar

n untuk menjawaba pertanyaan tersebut :

• ADO dapar mengakses semua type data, mengingat RDO dan DAO mengakses hanya relational data.

• ADO object model tidak sekomplek seperti RDO atau DAO dan oleh karena

• ADO merupakan penggabungan dari keistemewaan RDO dan DAO dmenggantikan RDO dan DAO.

• ADO adalah standart data access object model melalui Microsoft tools, termasuk Visual Basic, Access, Office, dan Microsoft IServer.

Sistem Database Pengenalan Object Model ADO 2 - 1

Pengenalan Object Model ADO

Tujuan : Pada Bab Ini diharapkan mahasiswa dapat : • Mengenali Organisasi dari ADO object model. • Mendeskripsikan role dari ADO Connection object. • Mendeskripsikan role dari ADO Command object. • Mendeskripsikan role dari ADO Recordset object.

BAB

2

Sistem Database Pengenalan Object Model ADO 2 - 2

II.1 Membuat Object ADO

del menyediakan kemudahan untuk me-set object, properties, dan etode untuk membuat aplikasi yang mengakses dan memanipulasi data. Meskipun

mpu keluaar dari scope hierarchy, objects yang ada dalam tionships, seperti ditunjukkan dalam gambar 2.1. Contahnya, tidak terface pemrograman database sebelumnya, kamu tidak harus

embuat Connection object sebelum mengakses Recordset object. Dengan ADO, amu dapat langsung membuat Recordset object, yang mana automatis membuat rmasuk koneksinya. Konsep ini biasanya disebut "flat" object model.

Gambar 2.1 The ADO Object Model

DO object model mempunyai tujuh objects:

• Connection object

Memelihara informasi koneksi dengan data provider.

• Command object

Memelihara informasi tentang command, seperti stored procedure dalam SQL Server database. Kamu dapat menjalankan command string pada Connecton object atau query string seperti sewaktu membuka Recordset object, tanpa mendefinisikan Command object. Command object berguna dimana kamu membutuhkan untuk mendefinikan query parameter atau menjalankan stored procedure yang mengembalikan hasil suatu parameter.

• Recordset object

Berisi rekord dari query. Kamu dapat membuka rekordset tanpa secara eksplisit (jelas) membuka Connection object. Yang mana, jika pertama kamu dengan jelas membuat Connection object, kamu dapat membuka multiple

ADO object momADO objects ma

ierarchical relaeperti dengan in

hsmkte

A

Sistem Database Pengenalan Object Model ADO 2 - 3

Recordset objects pada konekmengurangi beban server.

si yang sama. Ini mengurangi aplikasi dan

Single parameter untuk parameter perintah. Command object mendukung Kumpulan parameter.

enghasilkan dua atau lebih

. Property object endukung informasi

ak didukung oleh that ADO. Property

Setiap k es dan methods yang membolehkan kamu u bekerja dengan pemrograman ADO,

ts: Connection, Command, and

• Field object

Contains information about a single column of data within a recordset. The Recordset object supports the Fields collection.

• Parameter object

• Error object

Berisi penyampaian informasi error tentang kondisi yang berlansung oleh provider. Sejak adanya pernyataan tunggal dapat merror, Errors collection dapat berisi lebih dari satu Error object.

• Property object

Berisi kaarakteristik pendefinisian provider dari ADO objectdigunakan ketika data provider membutuhkan untuk mspecifik tentang data source yang tidobject membuat ADO extensible.

eistemewaan ADO object dari propertintuk memanipulasi object. Ketika kamu

kamu seperlunya menggunakan tiga ADO objecRecordset objects.

Catatan

nakan ADO dalam aplikasi Visual Basic, kamu

II.2 A

Contohyang term embolehkan kamu untuk konfigurasi property CommandTimeout. Property ini menentukan berapa lama seharusnya ADO embangun koneksi sebelum menghentikan ussaha n koneks

Sebelum kamu mengguharus set reference ke Microsoft ActiveX Data Objects 2.0 Library atau versi yang lebih tinggi.

DO Connection Object

, sebelum membangun koneksi, dalam aplikasi dapat membuat koeksi string asuk user's logon name dan password. Koneksi juga m

menunggu ketika mmembangun koneksi dan akan menghasilkan error bila gagal mengadakai.

Sistem Database Pengenalan Object Model ADO 2 - 4

II.3 A

Command objects didefinisikan menentukan secaara detail informasi tentang data yan i atabase. Command objects dapat berdasarkan object database yang lain (seperti tabel, view, atau stored prosedure) atau Structured Query Language (SQL)

Command object membuka koneksi baru atau menggunakan koneksi yang ada, tergangung pada apa yang kamu tentukan dalan property ActiveConnection. Jika kamu set property ActiveConnection dengan refensi untuk Connection object yang ada. Jikberart koneksi baru dibangun untuk Command object. Yang mana, sejak lebih daari satu Command object dapat menggunakan Connection object yang sama, ini berari yan t

II.4 A

Record and. Kamu gunkan Recordset objects untuk manipulasi data daari provider. Semua Recordset obj s gunakan records (baris) dan field (kolom).

Ketika cursor.secara satu rek ah atau menghapus rekord yang aktif itu

e menentukan bagaimana kamu dapat menggunakan rekord dalam rekords enyeting lebih dahulu property CursorType sebelum membuka recordset. Jika kamu tidak menetukan property sebelum kamu membuka recordset, maka nilainya adalah Static cursor. Empat macam type cursor yang tersedia pada ADO:

pada data sebenarnya dalam data source. Setiap nggunakan boookmark untuk membaca

artinya aplikasi selalu membaca nilai terakhir yang disimpan oleh user. Dynamic cursor automatis meng-update

kasi

sedia hanya sebagai server-side cursor.

Catatan

DO Command Object

g d terima daari d

query.

a kamu menentukan property ActiveConnection dengan connection string,

g a effisient.

DO Recordset Object

set object mewakili seluruh rekord dari tabel atau executed comm

ect dibangunan meng

kamu gunkan data dalam recordset object, kamu bekerjaja dengan database Cursor aalah database object digunkan aplikasi untuk memanipulasi data individu rekord yang ada. Misalkan, ketika kamu membuat rekordset, hanyaord yang aktif. Kamu dapat merub

tanpa mempengaruhi rekord yang lain.

II.4.1 Setting CursorType Property

Property CursorTypet. Kamu dapat m

Dynamic cursor

Berisi sekumpulan bookmarksaat client meminta rekord, ADO menilai yang ditunjuk pointer. Yang

ketika user menambah atau menghapus rekord atau merubah banyak rekord yang ada dalam rekordset. Dengan cursor ini membuat lalu lintas data pada server sangat padat karena setiap kamu berpindah dari rekord satu ke rekord lain selalu dipantau oleh sever. Dynamic cursor pilihan yang baik jika apliharus mendeteksi semua perubahan yang dibuat oleh user lain. Cursor ini ter

Sistem Database Pengenalan Object Model ADO 2 - 5

• Keyset cursor

n

• Static cursor

seakan-akan menyalin data dari database ke g r

u set LockType ogramer dan pengarang menyebut juga an sesuatu yang sepesial untuk

Microsoft Jet Engine tidak mendukung dynamic cursor, jadi jika kamu memaksakan untuk membuka dynamic cursor dengan Jet OLE DB Provider kamu selalu menerima hasil seperti membuka denga keyset cursor.

Serupa dengan dynamic cursor, tapi setiap user lain mengadakan perubahapada data maka tidak langsung ditampakan dalam rekordset. Kamu dapat membaca dan memodifikasi semua rekord, tapi kamu akan mendapat error jika kamu mengakses rekord yang telah dihapus oleh user lain. Keyset cursorhanya tersedia sebagai serve-side cursor.

Static cursor sebenarnya adalahrekordset, bila user lain merubah data pada database maka tidak akan langsunterlihat pada user yang mengakses database dengan static cursor. Statuc cursobiasanya merupakan pilihan terbaik untuk menerima data dari stored prosedure. Kamu sehaaarusnya membuat client-side static cursor hanya ketika client workstation mempunyai memori yang cukup.

• Forward-only cursor

Forward-only cursor adalah nilai default untuk server-side cursor dan hanya tersedia untuk server-side cursor. Cursor ini sangat efisien khususnya jika kam= adReadOnly dan CacheSize = 1. Banyak prseperti noncursor. Kamu tidak harus melakukmenggunakan cursor ini (noncursor) karena cursor ini default untuk ADO. Kamu dapat menafigasi forward-only Rekordset hanya menggunkan MoveNext mothod. Jika kamu ingin mendapat penampilan aplikasi yang baik untuk meng-update rekord, kamu seharusnya lakukan semua update melalui SQL commands atau stored prosedure.

Sistem Database Mengatur Koneksi ke Data Source 3 - 1

si ke Data Source

3 BAB

Mengatur Konek

Tuj Pada • Menghubungkan Data Source dengan menggunakan object ADO

uan :

Bab Ini diharapkan mahasiswa dapat:

Connection

Sistem Database Mengatur Koneksi ke Data Source 3 - 2

III.1 Definisi ADO Connection Object

ederhana menggunakan ADO untuk mengakses data source:

arasikan variabel object Koneksi. untuk membangun hubungan dengan data source (membuka

.

Sejak koneksi dibuka, kamu dapat menjalankan query yang mengubah rekord atau megembalikan dari rekord yang disebut recordset.

3. Menjala4. Menutu

Koneksi ke data souce server resources bebas.

un Koneksi

embuat koneksi ke database dan ketika oneksi sedang berjalan, semua peritah ke database dapat dijalankan.Syntax untuk

enjelasan metode untuk membuka koneksi:

• ConnectionString

String yang bernilai berisi informasi koneksi. Informasi ini menentukan :

o Nama provider yang digunakan koneksi. o Nama dari provider – berupa file.

• UserID

String bernilai berisis nama user ketika membangun koneksi.

• Password

String bernilai berisi informasi password user ketika membangun koneksi.

• Options

Optional ConnectOptionEnum bernilai menentukan apakah metode open bernilai akan mengembalikan sesudah (synchronously) atau sebelum (asynchronously) koneksi terjadi. Kamu dapat menge-set dengan adConnectUnspecified atau adAsyncConnect.

ontoh membangun koneksi :

Dasar aplikasi s

1. Mendekl2. Mencoba

koneksi)

nkan perintah SQL. p koneksi.

III.2 Membang

enggunakan metode Open untuk mDengan mkmembuka koneksi :

connection.Open ConnectionString, UserID, Password, Options

P

C

Sistem Database Mengatur Koneksi ke Data Source 3 - 3

Private Sub cmdConnect_Click() ' Declare the object variable

' This variable will contain the connection information ' Instantiate the object variable Set cnPubs = New ADODB.Connection ' st "Data Source=VB6ENTSVR;" & _ "Initial Catalog=Pubs" ' Open the database connection cnPubs.Open strConnect, "sa", "" End Su

Dim cnPubs As ADODB.Connection

Dim strConnect As String

Define the OLE DB connection string rConnect = "Provider=SQLOLEDB;" & _

b

CATATAN

"Data Source=" bernilai dalam connection string adala nama dari remote server. "Initial Catalog=" bernilai nama database dalam

optional karena kamu dapat menentukan informasi koneksi menggunakan property ConnectionString Connection object's roperty, seperti ditunjukkan dibawah ini :

Privat ' Declare the object variable Dim c u ' Instantiate the object variable Set cnPubs = New ADODB.Connection ' cnPubs.ConnectionString = "Provider=SQLOLEDB;" & _ "UID=sa;pwd=;" & _ "Data Source=VB6ENTSVR;" & _ ' cnPubs.Open End u

III.2.1

Sejak k . Dengan menggu mu dapat mengirim peerintah SQL ke database tanpa mengebalikan semua rekord ke client. Contoh, kamu mungkin

ua prices dalam database dengan 10 percent. Dalam

external data source.

Semua penjelasan untuk metode Open adalah

ConnectionString p

e Sub cmdConnect_Click()

nP bs As ADODB.Connection

Set the ConnectionString property value

"Initial Catalog=Pubs" Call the Open method without any arguments

S b

Melakukan Update dengan Connection Object

oneksi telah terjadi, kamu dapat me-update rekord dalam databasenakan metode Execute Connection object's , ka

membutuhkan meng-update sem

Sistem Database Mengatur Koneksi ke Data Source 3 - 4

hal ini, kamu dapat menggunakan perintah query update melalui metode Execute,

metode Close untuk kan teknik yang baik untuk

m applikasi berakhir.

Sub cmdClose_Click() cn ' Clear the object to free client resources Set cnPubs = Nothing End Sub

III.3 L

baru Standard EXE. . ects 2.0 Library dan klik OK.

set property Name property ke Connect.

programnya :

ata = New Connection With cnData

.Provider = "SQLOLEDB"

"Initial Catalog=Pubs"

End If

seperti contoh dibawah ini :

Sub cmdUpdatePrices_Click() tles Set Price = Price * 1.1" cnPubs.Execute "UPDATE Ti

d Sub En

III.2.2 Disconnecting dari Data Source

Sejak kamu mengahkiri koneksi, kamu menggunakanmemutuskan hubungan dari data source. Ini merupamenutup semua koneksi yang terbuka sebelu

Code mengahkiri koneksi dari data source :

Pubs.Close

atihan: Membuat Koneksi

Pada Latihan ini. Kamu menghubungkan database dengan menggunakan OLE DB provider.

• Untuk menghubungkan OLE DB provider menggunakan code

1. Buka Visual Basic dan buat project2. Pada Menu Project, klik References3. Check Microsoft ActiveX Data Obj4. Tambahkan CommandButton ke Form1,

cmdConnect, dan property Caption ke &5. Dalam cmdConnect_Click event procedure, code

Private Sub cmdConnect_Click() Dim cnData As Connection ' Instanciate the connection Set cnD

.ConnectionString = "User ID=sa;" & _ "Data Source=VB6ENTSVR;" & _

.Open End With If cnData.State = adStateOpen Then MsgBox "Connection successful."

Sistem Database Mengatur Koneksi ke Data Source 3 - 5

' Close the connection and release the cnData object cnData.Close Set cnData = Nothing

TATAN

End Sub

CA

SQ

ource parameter.

The ConnectionString has a parameter value that uses the SQL Server OLE OLE DB provider requires a different value for the roperty.

tton.

meneripa kotak pesan (pesan error).

8. Ketika selesai, klik End pada menu Run.

nggunakan ADO Command Object

an untuk data source. Ini dapat berdasarkan object yang lain stor p

Com a ksi unt rty Act rensi ke Co dari Connection object. Jika kamu menentukan property ActiveConnection dengan connec uk Command object. Yang mana, sejak itu lebi nggunakan Connectionobject yang sama, pada um n satu koneksi. Sekali Command object d menjalankan perintah yang ditentu

Query merubah rekord dalam d untuk menghasilk rekord, dimana enrubah rekord. Jika kamu mengiri pernyataan Select, kamu dapat mengembalikan banyak rekordset recordsets dengan satu Comma ored procedure, untuk mengak

The Data Source parameter of the ConnectionString must point to a Server. If the name of the SQL Server is different (than VB6ENTSVR) on your network, you have to change the value of the Data S

DB provider. Each ring pConnectionSt

6. Pada menu Run, klik Start. 7. Klik tombol Connect bu

Jika koneksi sukses, kamu tidak akan

III.4 Me

Command object didefinisikan dari menentukan perintah yang dijalankpada database(such as a table, view, or

ed rocedure) atau perintah SQL.

m nd object yang lain terbuka dalam koneksi baru atau menggunakan koneuk melakukan query, tergantung pada apa yang kamu tentukan didalam prope

Connection. Jika kamu set property ActiveConnectionive dengan refennection object, Command object menggunakan koneksi yang berjalan

tion string, Koneksi baaru dibangun unth dari satu Command object dapat me

umnya lebih effisient untuk menggunakaukibuat, kamu dapat menggunakan itu unt

recordset. kan atau membangun

strings menghasilkan records seperti recordset, atau hanya atabase. Misalnya, menggunakan pernyataa

Update atau Delete hanya mn Select

pernyataan SQL m lebih dari satu

pernyataan. Dengan enggunakan property ndText untuk menentukan pernyatan SQL, atau st

source. ses pada data

Sistem Database Mengatur Koneksi ke Data Source 3 - 6

BerbagComma ntuk menent unakan.

Daftar nilai yang diidukung CommandType :

Value Description

adCmdText Digunakan jika query string adalah perintah SQL.

adCmd

adCmdprocedure.

adCmdset

adC fik untuk OLE DB providers yang ataan SQL dan mempu untuk langsung erdasarkan nama tabel. Ini merupakan

adCmdUnknown Digunakan ketika command type tidak jelas diketahui, dan alankan command text

pertama seperti pernyataan SQL, kemudian seperti stored abel. Jika error terjadi

jika semua dari usaha tersebut gagal. Karena Command

fault.

t

ai macam kemungkinan printah yang kamu tempatkan pada property harus juga menggunkan property CommandType undText, tetapi kamu

uka type dari command yang dig

Table Digunkan jika query string adalah nama dari suatau tabel.

StoredProc Digunakan jika query string adalah nama dari stored

File Digunakan jika query string adalah nama dari file yang digunakan untuk menyimpan rekord dalam object Rekordsebelumnya.

mdTableDirect Digunakan spesimendukung pernymembukan tabel bvarisi pada adCmdTable.

provider mencoba untuk menj

procedure, dan ahkirnya seperti nama t

object harus menunjukkan langkah tersebut untuk menentukan type dari query string, Hasil adalah menurun. Ini adalah nilai de

Berikut ini kode menggunakan Command object untuk menambah pesentase discoununtuk semua rekord dalam tabel Discount dengan nilai 10 percent:

Private Sub cmdDoCommand_Click() Dim comDiscountUpdate As Command Set comDiscountUpdate = New Command With comDiscountUpdate .CommandType = adCmdText .ActiveConnection = "Provider=SQLOLEDB;" & _ "User ID=sa;" & _ "Data Source=VB6ENTSVR;" & _ "Initial Catalog=Pubs" .CommandText = "UPDATE Discounts SET Discount = Discount * 1.1" ' Call the Execute method to update the Discounts .Execute End With End Sub

Sistem Database Mengatur Koneksi ke Data Source 3 - 7

CATATAN

d procedure atau table.

Query string dapat juga nama dari store

Sistem Database Navigating Records 4 - 1

Menerima Record dari Data Source

Tujuan : Pada Bab Ini diharapkan mahasiswa mampu: • Mengembalikan records dari data source. • Definisi dan menggunakan cursors. • Mengembalikan dan mengatur banyak recordsets.

BAB

4

Sistem Database Navigating Records 4 - 2

IV.1 Menggunakan ADO Recordset Object

t mewakili hasi dari pelaksanaan perintah pda data source. Kamu apta menggunakan object tersebut untuk memanipulasi data. Sekali koneksi

source, kamu dapta mengebalikan rekord dengan menggunakan cordset object's.

erikut ini syntax untuk mengakse rekord dalam data source :

cordset.Open Source, ActiveConnection, CursorType, LockType, Options

Penjelasan m

Argument Description

urce Optional. Bisa berupa Nama variaberl yang berisi, pernyataan SQL, nama tabel, memanggil stored procedure.

Optional. Nama variabel koneksinya atau String berisi parameter ConnectionString.

dari cursor provider rdset.

kan apa type dari locking membuka

ptions Optional. Benilai Long yang menandakan bagaimana provider menilai Source argument jika menunjukkan sesuatu yang lain dari Command object, atau yang menunjukkan recordset yang disimpan daei file dimana file tersebut disimpan sebelumnya.

.1.1 Menggunakan Explicit Connection Object

amu dapat membangun Recordset object berdasarkan active connection ke data urce, yang mana dibatasi jumlah dari koneksi dan mengurangi sejumlah resouce

lient dan server yang digunakan dalam applikasi. Bergantung pada kebutuhan dari kordset, kamu boleh membutuhkan untuk membangun dalam explicit Connection

bject atau Command object lebih dahulu.

erikut ini contoh membuka dengan rekordset baru dari koneksi yang sudah berjalan :

im cnPubs As Connection im rsTitles As Recordset

Instantiate the objects et cnPubs = New Connection et rsTitles = New Recordset

Recordset objecddibangun ke data

etode Open Rem

B

re

etode Open pada rekordset :

So

ActiveConnection

CursorType Optional. Nilai yang menentukan typeoyang digunakan ketika membuka rek

LockType Optional. Nilai ynag menentu(concurrency) provider yang digunakan ketika rekordset.

O

IV

Ksocreo

B

DD 'SS

Sistem Database Navigating Records 4 - 3

' Open the connection cnPubs.ConnectionString = "Provider=SQLOLEDB;" & _

' Retrieve records from the data source

n object yang ada adalah untuk membuka rekordset baru menggunakan implicit connection. Satu dari keistemewaan dariADO obj lah kemampuan memanggil objects langsung. Ketika memanggil Recordset object secara langsung, ADO auto t background Connection

ou cannot a rekordset ditutup.

ecords dari tabel Titles:

Private Sub cmdO Dim rsTitles As Recordset

' Instantiat Set rsTitles

en a new ds tles.Ope

"Provide "Data So "InitialEnd Sub

ah kode yang akan an implicit

n

"User ID=sa;" & _ "Data Source=VB6ENTSVR;" & _ "Initial Catalog=Pubs" cnPubs.Open

rsTitles.Open "Select * from Titles", cnPubs

IV.1.2 Menggunakan Implicit Connection Object

Alternative untuk menggunakan Connectio

ect model adamatis membua

object (Y access this object programmatically). Ini automatis ditutup ketik

Berikut ini contoh menggunkan implicit connection untuk mengembalikan r

penRecordset_Click()

e the Recordset object = New Recordset

' Op rsTi

connection and return the appropriate recorn "Select * from Titles", _ r=SQLOLEDB;User ID=sa;" & _ urce=VB6ENTSVR;" & _ Catalog=Pubs"

Seperti kamu lihat, menggunakan teknik ini mengurangi sejumlkamu tulis. Yang mana, untuk setiap rekordset yang menggunakconnection, new connection dibuat pada data source. Sebagaian kasus, penambahaconnections menggunakan valuable resources. Ini lebih effisient untuk membuat single Connection object dan membuka yang dibutuhkan rekordset dari koneksi itu.Kamu dapat membuat banyak recordsets dari satu koneksi tanpa menambahkan connection resources.

CATATAN

nnections menyebabkan scalability problems applications, seperti dengan

gingat explicit Connection objects ketika

Menggunakan implicit coketika programming enterprise-levelMicrosoft SQL Server, menmengakses data source.

Sistem Database Navigating Records 4 - 4

IV.1.3 Locking the Recordset

ly. Provides for the best performance and he event your application intends to add

sting records, you will need to specify a different In a multi-user environment, locking ensures that no two users can

Menggunakan property LockType untuk menyeting pilihan untuk rekordset. Berikut e.

sedang di-edit.

locks records hanya ketika kamu memanggil metode Update rekordset.

mode batch update, ini dipaksa ode. Option ini dibutuhkan rs, termasuk disconnected

nakan optimistic locking:

les", cnPubs, adOpenDynamic, imistic

a dari fied yang kamu akses, kamu dapat syntax berikut untuk mengakses nilai tertentu dari field :

RecordsetObject!FieldName

ADO menghasilkan cursors yang read-onnts. In tlowest system resource requireme

records, or edit exirecords, delete cking option. lo

change the same record at the same time.

ini tabel yang memberi keterangan nilai dari property LockTyp

Locking Value Description

adLockReadOnly Data bersifat read-only. Ini merupakan nilai defaultnya.

adLockPessimistic Provider memastikan sukses melakukan edit pada rekords, biasanya rekords di-lock secara tiba-tiba ketika

adLockOptimistic Provider menggunakan optimistic locking, yang mana

adLockBatchOptimistic Records di-ke immediate update m

lock dalam

untuk client-side cursorecordsets.

Berikut ini contoh membuta dynamic recordset menggu

rsTitles.Open "Select * from TitadLockOpt

IV.2 Mengakses Record dalam Recordset

Sekali recordset telah dibuat, kamu dapat mengakses field dari setiap rekord dengan jalan :

• Referensi nama field

Jika kamu mengetahui nammenggunakan

Ini adalah paling efisien dari dua cara untuk referensi field.

Menggunakan Fields collection

Sistem Database Navigating Records 4 - 5

Kamu dapat juga menggunakan Recordset object's Fields collection. Cara ini tidak efisient ketika mengakses recordset. Berikut ini syntax untuk mengaksis

window Immediate:

-atau-

tles.

nilai dari field dengan menggunakan Fields collection:

recordsetobject.Fields(0) atau recordsetobject.Fields("FieldName")

Berkut ini contoh menampilkan fieldTitle dalam

Debug.Print rsTitles!Title

Debug.Print rsTi Fields(0)

NOTE

Field Title pada fi

Visual Basic menyediaka ntuk ADO recordsets. Ketika cmenggambarkan data rec Berikut contoh melakukan binds text box ke rekordset rsAuthor :

Set txtAuthor.DataSource = rsAuthor

Kamu dapat juga melakukan bind control lebih komplek ke rekordset. Berikut ini , dibuka menggunakan

cnPubs Connection object, dan property Hierarchical Flexgrid's DataSource

Dim cnPubs As ADODB.Connection Dim rsTitles As ADODB.Recordset Dim strConnect As String strCon "D "I

on object Set cnPubs = New Connection ' OpencnPubs.Open strConnect, "sa", "" ' Instantiate the Recordset object Set rsTitles = New Recordset

eld pertama dalam collection.

IV.3 Binding Control ke ADO Recordset

n kemampuan untuk control bind seperti text box uontrol bound ke recordset, control automatis

ord's saat itu.

txtAuthor.DataField = "au_fname"

code membuka koneksi ke SQL Server. Recordset, rsTitles

didefinisikan seperti rekordset rsTitles.

nect = "Provider=SQLOLEDB;User ID=sa;" & _ ata Source=VB6ENTSVR;" & _ nitial Catalog=Pubs"

' Instantiate a Connecti

a new connection

Sistem Database Navigating Records 4 - 6

' Open' cn connection and return the appropriate records rsTitles.Open "SELECT * From Titles", cnPubs

Set flexTitles.DataSource = rsTitles

unakan ADO kamu dapat mendefinisikan pernyataan perintah yang berisi pernyataan multiple Select, Hasilnya seperti perintah tunggal yang mengembalikan

ih efisien. Multefficient than calling a data source multiple times. Multiple recordsets dapat dibuat menggunakan metode Execute dari Co bject atau metode Open daari Recordset object. Berikut ini contoh membuat dua recordsets dari pernyataan single Open:

rsInfo.Open "SELECT * From Titles;SELECT * From Authors", cnPubs

, s menutup Recordset object sebelum langkah melalui seluruh

pernyataan perintah, ADO tidak pernah menjalankan perintah yang tersisa.

at data ataan perintah gabungan dari tiga peryataan

SELECT yang terpisah :

s_Click()

g

LOLEDB;" & _ _ _

; " & _

a new recordset using the

' Fill the Hierarchial Flexgrid control with ' data from the Titles table

IV.4 Membuat Multiple Recordset

Mengg

lebih dari satu rekordset, yang mana leb

mmand o

IV.4.1 Mendapatkan Rekordset Selanjutnya

Setiap pernyataan dalam perintah gabungan dijalankan dalam urutan masuk, dan hanya satu rekordset dikembalikan di satu waktu. Gunakan metode NextRecordset untuk bergerak kem rekordset berikutnya ketika multiple recordsets dikembalikan. Sejak metode NextRecordset hanya pernyataan perintah selanjutnya yang dijalankanjika kamu dengan jela

Syntaxnya sebagai berikut :

Set rsInfo = rsInfo.NextRecordset

Berikut ini contoh menggunakan metode NextRecordset method untuk melihdalam rekordset yang menggunakan pery

Private Sub cmdCompoundRecordset Dim rsCompound As Recordset Dim Count As Integer Dim strConnect As Strin

Dim strSQL As String strConnect = "Provider=SQ "Data Source=VB6ENTSVR;" & "Initial Catalog=pubs;" &

"User Id=sa;Password=;" thors strSQL = "SELECT * FROM au

Sistem Database Navigating Records 4 - 7

"SELECT * FROM stores; " & _

rsCompound.Open strSQL, strConnect, _

Debug.Print "Recordset #" & Count

elds(0), _ rsCompound.Fields(1)

"SELECT * FROM jobs" Set rsCompound = New Recordset rsCompound.CursorLocation = adUseClient adOpenUnspecified, _ adLockUnspecified Do Until rsCompound Is Nothing

Do While Not rsCompound.EOF Debug.Print , rsCompound.Fi

rsCompound.MoveNext Loop Set rsCompound = rsCompound.NextRecordset Count = Count + 1 Loop End Sub

Sistem Database Memodifikasi Record 5 - 1

Navigating Records

BAB

5

Tujuan :

ada Bab Ini diharapkan mahasiswa mampu : Menggunakan ADO recordset navigation methods Menjelaskan bermacam-macam ADO recordset navigation properti

P••

Sistem Database Memodifikasi Record 5 - 2

V.1 ADO Navigation Properties

ar properties dari Recordset object yang digunakan untuk nafigasi cordset:

Description

bsolutePage Letak atau mengembalikan halaman sebenarnya.

bsolutePosition Letak atau mengembalikan posisi sebenarnya dari nilai rekord (ini dapat dipakai oleh rekord menambah atau menghapus).

BOF Menandakan jika pointer rekord pertama.

ookmark Mengembalikan unique identifier untuk nilai rekord. Setting property ini untuk menentukan record's bookmark perpindahan record pointer ke rekord.

Menandakan jika pointer rekord digerakkan setelah rekord terahkir.

MsgBox "The end of the recordset has been reached." nd If

.2 ADO Navigation Methods

erikut ini daftar metode daari Recordset object yang digunakan untuk navigasi elalui recordset.

Method Description

ove Bergerak ditentukan nomor dari rekordset, maju atau mundur.

oveFirst Bergerak ke rekord pertama.

oveLast Bergerak ke rekord terakhir.

oveNext Bergerak ke rekord selanjutnya.

ovePrevious Bergerak ke rekord sebelumnya.

.3 Latihan : Navigating an ADO Recordset

alam latihan ini kamu akam membuat applikasi dengan membuat recordset object erdasar pada tabel dalam database SQL Server Pubs. Aplikasi ini akan mempunyai

tombol nafigasi seperti gambar dibawah ini.

Berikut ini daftare

Property

A

A

rekord telah digerakkan sebelum

B

EOF

Berikut ini contoh menggunakan property EOF:

If rsAuthor.EOF Then _ E

V

Bm

M

M

M

M

M

V

Db

Sistem Database Memodifikasi Record 5 - 3

Gamabar 5.1 Dat

• To connect to the SQL Server

1. Buka Visual Basic Standard EXE baru. 2. Pada Menu Project, klik References.

2.0 Library dan klik OK. 4. Set property Nama project ke PracL4.

1 ke frmAuthors e txtFirst dan

7. Tambahkan empat controlsCommandButton dan control Label ke form.

Name Caption

CmdFirst |<

Command2 Name CmdPrevious

man CmdNext >>

man CmdLast >|

LblRecordCount

abase navigation controls on the form

3. Check Microsoft ActiveX Data Objects

5. Set property dari Form6. Tambahka dua control Textbox ke form. Set properties name k

tLast. tx

Berikut ini setting prperties :

Control Property Value

Command1

Caption <<

Com d3 Name Caption

Com d4 Name Caption

Label1 Name Caption <blank>

8. Simpan project files ke folder \Practice\Ch06.

• To create a connection and a recordset

Sistem Database Memodifikasi Record 5 - 4

1. Tambahkan variabel ke frmAuthor's seperti be

' Use the events of the Recordset object Private WithEvents rsAuthors As ADODB.Recordset Private strConnect As String Private cn As ADODB.Connection

2. Tambahkan kode beerikut ini pada prosedur event Form

Private Sub Form_Load() ' Use your local SQL Server name for the Data Source strConnect = "Provider=SQLOLEDB;User ID=sa;" & _ "Data Source=VB6ENTSVR;" amp; _

rikut ini :

_Load.

"Initial Catalog=Pubs"

' Open a new connection "sa", "" ecordset object

e and CursorLocation nDynamic

thors.Open "Select * from Authors", cn

"au_fname" Set txtLast.DataSource = rsAuthors txtLast.DataField = "au_lname" End Su

edian membuat client-side, dyn rdset object dari tabel Authors. Control

au_fna e.

• To add navigation features to the form

1. Menggunakan MoveFirst evious, MoveNext dan MoveLast methods dalam command button pada event Click emberi user

uan nafigasi reko kut ini contoh kode pada prosedure event klik :

rsAuthors.MoveFirst

Private Sub cmdLast_Click()

' Instantiate a Connection object Set cn = New ADODB.Connection

cn.Open strConnect, ' Instantiate the R Set rsAuthors = New ADODB.Recordset ' Set the CursorType, LockTyp rsAuthors.CursorType = adOpe rsAuthors.LockType = adLockOptimistic

UseClient rsAuthors.CursorLocation = ad ' Open a new recordset using the ' cn connection and return the appropriate records rsAu ' Bind the Textbox controls Set txtFirst.DataSource = rsAuthors txtFirst.DataField =

b

Kode ini membuaat koneksi ke Pubs database pada SQL Server. Kemamic Reco

TxtFirst dan txtLast controls bound ke kolom me dan au_lnam

, MovePr untuk m

kemamp rd. Beri

Private Sub cmdFirst_Click()

End Sub

Sistem Database Memodifikasi Record 5 - 5

rsAuthors.MoveLast End Sub

Private Sub cmdPrevious_Click()

2. 3.

• To u

1. rs dari Object drop-down

Private Sub cmdNext_Click() rsAuthors.MoveNext End Sub

rsAuthors.MovePrevious End Sub

Simpan aplikasi kamu. atingJalankan aplikasi kamu dan coba Run the application and try navig

through the Authors records.

se ADO object events

Dari frmAuthors module window, select rsAutholist (lihat gambaar 6.2).

Sistem Database Memodifikasi Record 5 - 6

Gamabar 5.2 The Object list

2. ure drop-down list, select prosedure MoveComplete. Tambahkan Complete:

te(ByVal adReason As _ pError As ADODB.Error, _

entStatusEnum, _ yVal pRecordset As ADODB.Recordset)

' Avoid reading beyond the end of file (EOF) or the ile (BOF)

Then rsAuthors.MoveFirst End If ' Set the label's caption to show current record ' and total record count lblRecordCount.Caption = "Record " & _ rsAuthors.AbsolutePosition _ & " of " & rsAuthors.RecordCount End Sub

3. Simpan dan jalank aplikasi kamu. Gambaar 6.3 illustrasi from secara lengkap sewaktu aplikasi dijalankan.

Dari Procedkode berikutnini untuk event Move

Private Sub rsAuthors_MoveComple ADODB.EventReasonEnum, ByVal adStatus As ADODB.Ev B

' beginning of f If rsAuthors.EOF Then rsAuthors.MoveLast ElseIf rsAuthors.BOF

Gambar 5.3 The completed form

Sistem Database Memodifikasi Record 6 - 1

emodifikasi Record

BAB

6

M

Tuj Pa• ords menggunakan perintah SQL. • Memodifikasi single record menggunakan Recordset Object.

uan :

da Bab Ini diharapkan mahasiswa dapat: Memodifikasi multiple rec

Sistem Database Memodifikasi Record 6 - 2

VI.1 Memodifikasi dengan Perintah SQL

u membutuhkan untuk update sejumlah rekord, kamu dapat enjalankan perintah SQL menggunakan Connection atau Command object's Execute

Connection object ketika pernyataan hanya akan dipanggil sekali. and object jika perintah akan dijalankan oleh aplikasi kamu lebih dari membutuhkan untuk memanggil stored procedure. Command object

apat dibuat di temporary stored procedure untuk lebih efisien ketika perintha igunakan lebih dari satu kali

erikut ini menggunakan pernyataan untuk memodifikasi multiple records dalam single database:

Private Sub cmdConnect_Click() Dim cnPubs As Connection Dim strConnect As String

New Connection OLE DB connection string = "Provider=SQLOLEDB;" & _

"Data Source=VB6ENTSVR;" & _

cnPubs.Close Set cnPubs = Nothing nd Sub

I.2 Memodifikasi Record dalam Recordset

ka aplikasi kamu telah membuka rekordset, kamu dapat memodifikasi data enggunakan recordset's methods. Memodifikasi rekord dengan Recordset object rbatas untuk satu penambahan, penghapusan, atau update pada satu waktu.

I.2.1 Menambah Rekord

alam perintah untuk menambah rekord baru gunakan AddNew method. Segera telah rekord baru tersebut terisi gunakan Update method untuk menyimpan ke kordset dan data source. Berikut ini contoh menggunakan AddNew method untuk enambah rekord Author:

sAuthors.AddNew sAuthors!au_fname = "Nancy" sAuthors!au_lname = "Davolio" sAuthors.Update

Jika aplikasi kammmethod. Gunkan

unakan Commekali jika kamu

Gsdd

B

Set cnPubs = ' Define the strConnect

"Initial Catalog=Pubs" ' Open the database connection cnPubs.Open strConnect, "sa", "" ' Execute the SQL statement cnPubs.Execute "UPDATE Titles Set Price = Price * 1.1" E

V

Jimte

V

Dserem

rrrr

Sistem Database Memodifikasi Record 6 - 3

VI.2.2 Menghapus Record

Untuk menghapus rekord dari recordset, pertama kamu harus nafigasi ke rekotepat. Gunakan Delete method untuk permanen menghapus record dari recordset dan data source. Berikut ini contoh menghapus suatu rekord:

rsAuthors.Delete

VI.2.3 Modifikasi Record

rd yang

ilai Kemudian menggunakan Update method, kamu dapat menyimpan

perubahan untuk recordset dan data source. Berikut ini contoh merubah dan me-

Authors!au_fname = "Nancy"

Penambahan Rekord

n suatu record, atau hasil dari AddNew pat

mu gunakan , cursor mengembalikan ke rekord sebelumnya.

ddNew menggunakan CancelUpdate:

rsAuthors!au_fname = "Nancy"

Untuk merubah suatu rekord dalam recordset, aplikasi kamu dapat memodifikasi ndaari setiap field.

update suatu record:

rsrsAuthors!au_lname = "Davolio" rsAuthors.Update

VI.2.4 Membatalkan Perubahan atau

Jika kamu membutuhkan pembatalan perubahamethod, kamu dapat menggunakan CancelUpdate method. Kamu hanya da

Update sebelum mejalankan Update method. Jika kamenggunakan CancelCancelUpdate dengan AddNew

contoh membatalkan ABerikut ini

rsAuthors.AddNew

rsAuthors!au_lname = "Davolio" rsAuthors.CancelUpdate

Sistem Database Memodifikasi Record 6 - 4

Sistem Informasi Manajemen Tambahan 1