Chương 5 _ Phần 1 : Overview of ADO
ADO được tạo
thành như một ứng dụng bao gồm các chi tiết
properties, methods, events giống như bao ứng dụng khác
vậy. ADO còn được
xử dụng như một component.
Và theo phương pháp viết program mới, việc
xử dụng các bộ phận (components) đã cho
thấy hiệu quả rất cao, cho nên ADO đã đóng
góp phần lớn trong việc phát triển ứng
dụng.
Có rất nhiều
sản phẩm về lưu trử hồ sơ (từ chuyên
nghiệp bên tiếng Anh gọi là platform) như C++, Java,
SQL... và mỗi loại như vậy đều có cách lưu
giử và cung cấp khác nhau. Nhưng
với ADO, các bạn có thể xử dụng component này
trong các sản phẩm của họ.
Thí dụ điển hình là như vậy : Ngày xưa
bên Âu châu, khi nước này qua nước kia, họ
phải đổi tiền tệ ở nước mà
họ đến. Nhưng ngày nay, với đơn vị
tiền tệ Euro, người Âu châu có thể xử
dụng ở bất cứ nước nào trong Âu châu.
Và với ADO cũng vậy, với ADO component, các
bạn có thể xử dụng trong các sản phẩm sau
đây :
Microsoft Visual Basic
Microsoft Visual InterDev
Microsoft Visual C++
Microsoft Visual J++
Microsoft Visual FoxPro
Microsoft VBScript
Microsoft Visual Basic for
Applications
ADO là sự tổng hợp giửa RDO và DAO. Mời Quí Vị đọc lại những chương trước đó, chúng tôi có nói qua RDO (Remove Data Object) và DAO (Data Access Object). Hình ảnh dưới đây cho chúng ta thấy sự tổng hợp đó. Chính nhờ sự tổng hợp này, chúng ta mới có thể xử dụng được ở nhiều platforms.

ActiveX Data
Object bao gồm 3 bộ phận chính : Connection object, Command
object, Recordset object. Hình
ảnh dưới đây, cho chúng ta thấy sự quan
hệ giửa các objects với nhau và cách làm việc
của ActiveX Data object.
Connection Object : là bộ phận quan trọng nhất trong ADO object model. Nó dùng để nối liền ứng dụng của bạn với các kho nhu liệu như Microsoft Access, Microsoft SQL Server...Hình ảnh dưới đây diển tả việc làm của connection object trong ActiveX Data Object Model

Command Object : Bộ phận này dùng để trình bày hay giao trả những nhu liệu theo yêu cầu của người xử dụng hay của ứng dụng. Trong Command Object, chúng ta sẽ nói cho kho nhu liệu biết chúng ta cần những loại nhu liệu nào ? Và kho nhu liệu sẽ đưa cho chúng ta. Dưới đây là hình ảnh minh họa mối quan hệ về command object trong ActiveX Data Object.

Recordset object : là một bộ phận trong ActiveX Data Object, có nhiệm vụ giao trả những hồ sơ tư liệu trong Kho nhu liệu khi command object gọi đến. Với Recordset object, các bạn có thể sửa đổi hoặc thêm bớt các nhu liệu theo yêu cầu. Dưới đây là hình ảnh cho thấy mối liên hệ của Recordset object trong ActiveX Data Object.

Ngoài 3 bộ phận chính
mà chúng tôi vừa nói qua, ActiveX Data Object còn có 3 bộ
phận phụ khác hổ trợ cho nó là : Errors Collection,
Parameters Collection và Fields Collection.
Chính vì ADO hoạt động như một ứng
dụng riêng biệt, cho nên 3 bộ phận phụ trên giúp
cho ADO có những khả năng như là xử dụng trên
nhiều platforms, tránh nhiều trở ngại và dể dàng
phát triển...
Errors Collection : Khi
Connection Object làm việc, Errors Collection sẽ báo cáo cho ADO
biết tình trạng hiện thời của ứng
dụng, chẳng hạn như Server on hay off (Server đang
mở hay tắt rồi). Hay là bên Server thiếu những
bộ phận cơ bản để được
nối liền với ADO...Sau đây là vài hàng code cơ
bản được viết trong Errors Collection dùng để
báo cho chúng ta biết khi nối liền với Server (Data
Store, Mainframe, SQL Server...)
Sub
StartConnection()
' Declare a
connection and error object
Dim cnStateUBookstore As Connection
Dim adoErr As Error
Set cnStateUBookstore = New
Connection
' Enable the
error trap
On Error Goto
StartConnection_Handler
' Establish a
connection to the data source
With cnStateUBookstore
.Provider
= "SQLOLEDB"
.ConnectionString
= "User ID=sa;" & _
"Data Source=MSERIES1;" & _
"Initial Catalog=StateUBookstore"
.Open
End With
' If the connection succeeds, exit
the procedure
Exit
Sub
StartConnection_Handler:
' If an error
occurs, loop through the collection
' There can be more than one error
code for a single
' Run time error
For Each adoErr in
cnStateUBookstore.Errors
'
Show each error description to the user
MsgBox
adoErr.Description
Next
End
Sub
Parameters Collection : Bộ phận này dùng để đưa những thông tin từ Command object vào trong kho giử nhu liệu, giúp cho ADO biết được nơi nào trong kho nhu liệu để lấy.
Fields Collection : Bộ phận này giúp Recordset object biết chi tiết nào trong kho nhu liệu để lấy và trình bày cho người xử dụng.
Chương 5 _Phần 2 _Ðoạn 1 :
Introduction to Connection Object
Bộ phận Connection Object trong ứng dụng
của bạn dùng để kiểm chứng những chi
tiết về Client information như user name, password khi
những người này muốn vào kho nhu liệu để
lấy tài liệu. Ðể
làm việc này chúng ta phải thực hiện 4 bước
sau đây (có lẻ đã không còn lạ lùng với các
bạn nữa, bởi vì những bước này chúng ta làm
rất nhiều lần ở những chương truớc
đó). Tuy nhiên, để
ADO làm việc hữu hiệu, chúng ta vẫn phải làm
theo các trình tự sau đây :
Ðặt ADO object library vào trong references cho
Visual Basic Application
Xác định Connection Object
Chọn OLE DB Data Provider
Giao những chi tiết về sự nối
liền cho Connection object kiểm chứng.
Làm sao để đặt ADO object library vào trong
references cho VB application ?
Trong Project menu của Visual Basic Application,
bấm trên References
Trong danh sách những bộ phận bổ
xung cho Visual Basic Application, chọn Microsoft Data Objects 2.0
Library, rồi bấm OK.
Như vậy là chúng ta đã
làm xong bước thứ nhất rồi.
Bước thứ nhì là xác định Connection
Object. Từ chuyên
nghiệp trong tiếng Anh gọi là declare a connection object.
Bằng cách viết code. Chúng
ta viết code để xác định Database Name và
viết command để connection object tiếp tục làm
việc sau khi đã biết Database Name.
Ðây là thí dụ điển hình :
Dim
(Database Name) As Connection
Set
(Database Name) = New Connection
Bước thứ ba là chọn Data Provider.
|
OLE DB Data Provider |
Description |
|
SQLOLEDB |
OLE DB provider for Microsoft SQL Server |
|
MSDASQL |
OLE DB provider for ODBC |
|
Microsoft Jet OLEDB 3.51 |
OLE DB provider for Microsoft Jet |
|
MSIDXS |
OLE DB provider for Microsoft Index Server |
|
ADSDSO Object |
OLE DB provider for Microsoft Active Directory Services |
|
MSDAORA |
OLE DB provider for Oracle |
Chiếu theo OLE DB data provider, Quí vị chỉ cần viết code cho biết provider thuộc thể loại nào mà ứng dụng của bạn xử dụng thì ADO object sẽ biết chổ để đến lấy tin tức, nhu liệu...mà cung cấp theo yêu cầu của các bạn. Thí dụ như :
ListofCurrentStock.Provider
= “SQLOLEDB” 'OLE DB provider for Microsoft SQL Server
Bước cuối cùng để
hoàn tất việc nối liền vào kho nhu liệu là
kiểm tra toàn bộ các chi tiết về provider, userID,
password, Data Source, Initial Catalog...Sau đây là những chi
tiết mà kho nhu liệu đòi hỏi trước khi cho
phép ADO vào trong kho để lấy tin tức, tài liệu...
|
Connection Argument |
Description |
|
UserID |
Tên của User có trong danh sách |
|
Password |
Mật mã có giá trị hiệu nghiệm |
|
Data Source |
Tên của remote Server |
|
Initial Catalog |
Tên của Database chứa trong Server |
Quí vị xử dụng With
event để làm công việc trên :
With
ListofCurrentStock
.Provider = “SQLOLEDB” ‘OLE DB provider for
Microsoft SQL Server
.ConnectionString = “User ID=sa;Password=;”&_
“Data Source
= MSERIES1;”&_
“Initial
Catalog = ListofCurrentStock”
‘connection argument
End
With
Chương 5 _ Phần 2 _ Ðoạn 2 :
Connecting to and Disconnecting from a Data Source
Một sự nối liền hoàn chỉnh sẽ giúp
cho cả hai bên Client và Server làm việc có hiệu quả.
Mặc dầu ADO sẽ tự động cắt
đứt sự nối liền khi người xử
dụng tắt đi ứng dụng khi không dùng nữa, nhưng
một ADO hoàn chỉnh vẫn phải có một giai đoạn
là đóng sự nối liền lại trong khi ứng
dụng vẫn hoạt động.
Vì nhờ đó mà những bô phận khác (objects)
vẫn có thể hoàn thành chức năng của mình.
Mời các bạn cùng chúng tôi viết một program
đơn giản là connect và disconnect từ Data Source.
Chương trình đơn
giản này bao gồm 3 bộ phận : connection object, command
object và recordset object. Sau
khi bổ xung Microsoft Data Objects 2.0 Library vào trong Visual Basic
rồi thì chúng ta đặt 2 command button vào trong Form Visual
Basic. Một command tên là
connect và command khác tên là Disconnect.
Với 2 command object này chúng ta có thể ra vào nơi
cất giử tài liệu và khóa lại khi không dùng đến.
Ðây là user interface cho chương trình đơn giản này:

Ðây là code cho command connect :

Ðây là code cho command Disconnect :


Chương 5 _Phần 2 _ Ðoạn 3 :
Using Connection Object Events
Chúng tôi trình bày cùng các bạn những tiết
mục mà Connection Object có thể biểu diển cùng các
bạn. Nói cách khác, chúng
tôi trình bày cùng các bạn các chức năng chủ
yếu của Connection Object, thì các bạn thấy lợi ích của
việc xử dụng ADO nhiều hơn nữa.
|
Event |
Description |
|
AbortTransaction |
Có hiệu lực sau khi RollbackTrans
method được dùng tới. |
|
BeginTransaction |
Có hiệu lực sau khi BeginTrans method
được dùng tới. |
|
CommitTransaction |
Có hiệu lực sau khi CommitTrans method
được dùng tới. |
|
ConnectComplete |
Có hiệu lực khi hoàn thành tiến trình
nối liền...báo cáo trở ngại hay hoàn
chỉnh... |
|
Disconnect |
Có hiệu lực khi ứng dụng
cắt đứt sự nối liền. |
|
ExecuteComplete |
Có hiệu lực khi Execute method
được gọi đến. |
|
InfoMessage |
Có hiệu lực khi có những thông báo
từ OLE DB hay kho nhu liệu... |
|
WillConnect |
Có hiệu lực sau khi Open method
được dùng đến. |
|
WillExecute |
Có hiệu lực khi Execute method
được dùng đến. |
Ngoài ra các bạn còn có thể thêm code vào các Event này để phục vụ hữu hiệu hơn cho ứng dụng của các bạn. Thí dụ như các bạn có thể thêm vào Event một thông tin nói rằng sự nối liền đã hoàn thành sau đây :
Sub cnStateUBookstore_ConnectComplete (ByVal pError As ADODB.Error,_
adStatus As ADODB.EventStatusEnum, _
ByVal pConnection As ADODB.Connection)
If adStatus = AdStatusOK Then
MsgBox " The Connection has been establised with the Data Source."
End If
End Sub
Chúng tôi sẽ tiếp tục trình bày cùng Quí vị thêm nhiều chi tiết về ADO.
(...còn tiếp...mời Quí vị xem trang kế tiếp...)
|
Vovisoft © 2000. All rights reserved. | ||||
|
Last Updated: 21 Jun 2007 |
||||