Lp trình trc quan
226
BÀI 24. LP TRÌNH VI ADO
24.1. Control Data ADO
Visual Basic 6 cho ta s la chn v k thut khi lp trình vi database, hoc là dùng DAO
như trong hai bài trước, hoc là dùng ADO (ActiveX Data Objects).
S khác bit chính gia ADO và DAO là ADO cho phép ta làm vic vi mi loi ngun d
kin (data sources), không nht thiết phi là Access database hay ODBC. Ngun d kin có
th là danh sách các địa ch Email, hay mt file text string, trong đó mi dòng là mt bn ghi
gm nhng fields ngăn cách bi các du phy (comma separated values).
Nếu trong DAO ta dùng thng tên ca MSAccess Database thì trong ADO cho ta ni vi
(connect) mt database qua mt Connection bng cách ch định mt Connection String.
Trong Connection String có Database Provider (ví d như Jet, ISAM, Oracle,
SQLServer..v.v.), tên Database, UserName/Password để logon mt database .v.v.. Sau đó ta
có th ly v (extract) nhng recordsets, và cp nht hóa các records bng cách dùng nhng
lnh SQL trên các tables hay dùng nhng stored procedures bên trong database.
Bình thường, khi ta mi khi động mt project VB6 mi, Control Data ADO không có sn
trong IDE. Mun có nó, chúng ta hãy dùng Menu Command Project | Components..., ri
chn Microsoft ADO Data Control 6.0 (OLEDB) t giao din Components như dưới đây:
Lp trình trc quan
227
Chúng ta hãy bt đầu mt d án VB6 mi, cho nó tên ADODataControl bng cách click tên
project trong Project Explorer bên phi ri edit property Name trong Properties Window. Sa
tên ca form chính thành frmADO, và đánh câu ADO DataControl Demo vào Caption ca nó.
DoubleClick lên Icon ca Control Data ADO trong Toolbox. Mt Control Data ADO tên
Adodc1 s hin ra trên Form. Mun cho nó nm bên dưới Form, ging như mt StatusBar, hãy
set property Align ca nó trong Properties Window thành 2 - vbAlignBottom.
Click bên phi dòng property (Custom), kế đó click lên nút browse có ba chm để giao
thoi Property Pages hin ra. Trong giao thoi này, trên Tab General chn Radio (Option)
Button Use Connection String ri click nút Build....
Trong giao thoi Data Link Properties, Tab Provider, chn Microsoft Jet 3.51 OLE DB
Provider, ri click nút Next >> hay Tab Connection.
Lp trình trc quan
228
ch Select or enter a database name ta chn E:\Program Files\Microsoft Visual
Studio\VB98\BIBLIO.MDB, trong computer ca chúng ta có th file y nm trên disk C hay
D. Sau đó, chúng ta có th click nút Test Connection phía dưới để th xem connection có
được thiết lp tt không.
Lp connection xong ri, ta ch định mun ly gì v làm Recordset bng cách click
property Recordsource ca Adodc1. Trong giao din Property Pages ca nó chn 2-
Lp trình trc quan
229
adCmdTable làm Command Type, kế đó m Combo box cho Table or Stored Procedure
Name để chn table Titles.
Tùy theo cách ta dùng Recordset trong ADO, nó có ba loi và được gi là Cursor Type.
Cursor chng qua là mt tên khác ca Recordset:
- Static Cursor: Static Cursor cho chúng ta mt static copy (bn sao cng ngc) ca các
records. Trong lúc chúng ta dùng Static Cursor, nếu có ai khác sa đổi hay thêm, bt gì vào
recordset chúng ta s không thy.
- Keyset Cursor: Keysey Cursor hơn Static Cursor ch trong lúc chúng ta dùng nó, nếu
có ai sa đổi bn ghi nào chúng ta s biết. Nếu ai xóa bn ghi nào, chúng ta s không thy
nó na. Tuy nhiên chúng ta s không biết nếu có ai thêm mt bn ghi nào vào recordset.
- Dynamic Cursor: Như ch sng động (dynamic) hàm ý, trong lúc chúng ta đang dùng
mt Dynamic Cursor, nếu có ai khác sa đổi hay thêm, bt gì vào recordset chúng ta s
thy hết.
Chúng ta hãy chn tr s 2-adOpenDynamic cho property Cursor Type ca Adodc1:
Lp trình trc quan
230
Bây gi chúng ta hãy đặt lên Form 4 labels vi captions: Title, Year Published, ISBN
Publisher ID. Kế đó cho thêm 4 textboxes tương ng và đặt tên chúng là txtTitle,
txtYearPublished, txtISBNtxtPublisherID.
Để thc hin Data Binding, chúng ta hãy chn textbox txtYearPublished (năm xut bn),
ri set property Datasource ca nó trong Properties Window thành Adodc1. Khi click lên
property DataField ca txtYearPublished và m ComboBox ra chúng ta s thy lit kê tên
các Fields trong table Titles. Đó là vì Adodc1 được coi như trung gian ly table Titles t
database. đây ta s chn ct Year Published.
Lp li công tác này cho 3 textboxes kia, và chn các ct Title (Tiêu đề), ISBN (s lý lch
trong thư vin quc tế), và PubID (s lý lch nhà xut bn) làm DataField cho chúng.