Ch ng M i Sáu - L p trình v i ADO (ph n I)ươ ườ
Control Data ADO
Visual Basic 6 cho ta s l a ch n v k thu t khi l p trình v i database, ho c là dùng DAO
nh trong hai bài tr c, ho c là dùng ư ướ ADO (ActiveX Data Objects).
S khác bi t chính gi a ADO và DAO là ADO cho phép ta làm vi c v i m i lo i ngu n d
ki n (data sources), không nh t thi t ph i là Access database hay ODBC. Ngu n d ki n có ế
th là danh sách các đ a ch Email, hay m t file text string, trong đó m i hàng là m t record
g m nh ng fields ngăn cách b i các d u ph y ( comma separated values).
N u trong DAO ta dùng th ng tên c a MSAccess Database thì trong ADO cho ta ế n i v i
(connect) m t database qua m t Connection b ng cách ch đ nh m t Connection String.
Trong Connection String có Database Provider (thí d nh Jet, ISAM, Oracle, ư
SQLServer..v.v.), tên Database, UserName/Password đ logon m t database .v.v.. Sau đó ta
có th l y v (extract) nh ng recordsets, và c p nh t hóa các records b ng cách dùng nh ng
l nh SQL trên các tables hay dùng nh ng stored procedures bên trong database.
Bình th ng, khi ta m i kh i đ ng m t project VB6 m i, Control ườ Data ADO không có s n
trong IDE. Mu n có nó, b n hãy dùng Menu Command Project | Components..., r i ch n
Microsoft ADO Data Control 6.0 (OLEDB) t giao di n Components nh d i đây: ư ướ
B n hãy b t đ u m t d án VB6 m i, cho tên ADODataControl b ng cách click tên
project trong Project Explorer bên ph i r i edit property Name trong Properties Window. S a
tên c a form chính thành frmADO, và đánh câu ADO DataControl Demo vào Caption c a
nó.
DoubleClick lên Icon c a Control Data ADO trong Toolbox. M t Control Data ADO tên
Adodc1 s hi n ra trên Form. Mu n cho nó n m bên d i Form, gi ng nh m t StatusBar, ướ ư
hãy set property Align c a nó trong Properties Window thành 2 - vbAlignBottom.
Click bên ph i hàng property (Custom), k đó clickn nút browse có ba ch m đ giaoế
tho i Property Pages hi n ra. Trong giao tho i n y, trên Tab General ch n Radio (Option)
Button Use Connection String r i click nút Build....
Trong giao tho i Data Link Properties, Tab Provider, ch n Microsoft Jet 3.51 OLE DB
Provider, r i click nút Next >> hay Tab Connection.
ch Select or enter a database name ta ch n E:\Program Files\Microsoft Visual
Studio\VB98\BIBLIO.MDB, trong computer c a b n có th file y n m trên disk C hay D.
Sau đó, b n có th click nút Test Connection phía d i đ th xem connection có đ cướ ượ
thi t l p t t không. ế
L p connection xong r i, ta ch đ nh mu n l y gì v làm Recordset b ng cách click property
Recordsource c a Adodc1. Trong giao di n Property Pages c a nó ch n 2-adCmdTable làm
Command Type, k đó m Combo box cho ế Table or Stored Procedure Name đ ch n
table Titles.
Tùy theo cách ta dùng Recordset trong ADO, nó có ba lo i và đ c g i là ượ Cursor Type.
Cursor ch ng qua là m t tên khác c a Recordset:
Static Cursor: Static Cursor cho b n m t static copy (b n sao c ng ng c) c a các
records. Trong lúc b n ng Static Cursor, n u có ai khác s a đ i hay thêm, b t gì vào ế
recordset b n s không th y.
Keyset Cursor: Keysey Cursor h n Static Cursor ch trong lúc b n dùng nó, n uơ ế
có ai s a đ i record nào b n s bi t. N u ai delete record nào, b n s không th y nó n a. ế ế
Tuy nhiên b n s không bi t n u có ai thêm m t record nào vào recordset. ế ế
Dynamic Cursor: Nh ch ư s ng đ ng (dynamic) hàm ý, trong lúc b n đang dùng
m t Dynamic Cursor, n u có ai khác s a đ i hay thêm, b t gì vào recordset b n s th y h t. ế ế
B n hãy ch n tr s 2-adOpenDynamic cho property Cursor Type c a Adodc1:
Bây gi b n hãy đ t lên Form 4 labels v i 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.
Đ th c hi n Data Binding, b n hãy ch n textbox txtYearPublished (năm xu t b n), r i set
property Datasource c a nó trong Properties Window thành Adodc1. Khi click lên property
DataField c a txtYearPublished và m ComboBox ra b n s th y li t kê tên các Fields trong
table Titles. Đó là vì Adodc1 đ c coi nh trung gian l y table Titles t database. đây ta sượ ư
ch n c t Year Published.
L p l i công tác n y cho 3 textboxes kia, và ch n các c t Title (Tiêu đ ), ISBN (s lý l ch
trong th vi n qu c t ), và PubID (s lý l ch nhà xu t b n) làm DataField cho chúng. ư ế
Đ n đây, m c d u ch a vi t m t hàng code nào, b n có th ch y ch ng trình và nó sế ư ế ươ
hi n th nh d i đây: ư ườ
B n có th t i v ch ng trình dùng Control Data ADO n y t đây ươ ADODatacontrol.zip.
Data Form Wizard
Đ giúp l p trình viên thi t k các data forms nhanh h n, VB6 cho ta ế ế ơ Data Form Wizard đ
generate (phát sinh) ra m t form có h tr Edit, Add và Delete records.
Bây gi b n hãy kh i đ ng m t standard project VB6 m i, tên ADOClass và copy MS
Access file BIBLIO.MDB, t c là database, vào trong cùng folder c a d án m i n y.
Mu n dùng Data Form Wizard, tr c h t ta ph i thêm nó vào môi tr ng phát tri n (IDE) ướ ế ườ
c a VB6. B n hãy dùng IDE Menu Command Add-Ins | Add-In Manager.... Ch n VB6
Data Form Wizard trong giao tho i, r i click Checkbox Loaded/Unloaded đ ch Loaded
hi n bên ph i hàng "VB6 Data Form Wizard" nh trong hình d i đây: ư ướ