Tải bản đầy đủ (.pdf) (14 trang)

ĐỐI TƯỢNG DỮ LIỆU ACTIVEX (ACTIVEX DATA OBJECTS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (579.44 KB, 14 trang )

Visual Basic
Chương 11:
ĐỐI TƯỢNG DỮ LIỆU ACTIVEX

(ACTIVEX DATA OBJECTS)


Mục tiêu:
Chương này giới thiệu về thư viện ActiveX Data Object (ADO), thư viện
đối tượng được sử dụng nhiều nhất trong các ứng dụng truy cập cơ sở dữ liệu
dạng khách/chủ (Client/Server) hiện nay.
Học xong chương này, sinh viên phải nắm bắt được các vấn đề sau:
- Kiến trúc OLEDB/ADO.
- Cây phân cấp của mô hình đối tượng ADO.
- Sử dụng thư viện đối tượng ADO để t
ương tác với cơ sở dữ liệu trong
VB.
Kiến thức có liên quan:
- Các cấu trúc lập trình trong VB.
- Câu lệnh truy vấn dữ liệu trong cơ sở dữ liệu.
- Nắm bắt được các mô hình DAO, RDO là một lợi thế vì lúc đó việc tiếp
thu mô hình ADO được nhanh hơn.
Tài liệu tham khảo:
- Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu - Chương 27,
trang 877 - Nguyễn Thị Ngọc Mai (chủ biên) – Nhà xuất b
ản Giáo dục -
2000.
- Tự học Lập trình cơ sở dữ liệu với Visual Basic 6 trong 21 ngày (T2)
– Chương 18, trang 277 - Nguyễn Đình Tê (chủ biên) - Nhà xuất bản Giáo
dục - 2001.




Trang 125
Visual Basic
ADO (ActiveX Data Objects) là công nghệ truy cập cơ sở dữ liệu hướng đối tượng
tương tự như DAO. Hiện nay, ADO được Microsoft xem kỹ thuật chính để truy cập dữ
liệu từ Web Server.
I. Kiến trúc OLE DB/ADO
ADO sử dụng OLEDB như là trình cung cấp dữ liệu cơ sở. Trình cung cấp OLE
DB cho phép người lập trình có thể truy xuất dữ liệu từ cả hai nguồn: quan hệ và phi
quan hệ. VB6.0 đã hỗ trợ các trình cung cấp cục bộ cho SQL Server, Oracle và
Microsoft Jet/Access.





















Ta chỉ cần lập trình với phần giao diện người sử dụng ở phía Client. Việc truy cập
cơ sở dữ liệu trên trình duyệt Web hay ứng dụ
ng VB được thực hiện nhờ ADO. Cấu
trúc này cho phép ta lập trình một cách nhất quán trên Web cũng như trên ứng dụng.
Remote Data
Ob
jects
ODBC Driver
ODBC Driver
Mana
ger
ActiveX Data
Ob
jects
OLE DB Data
Provide
r
OLE DB

Relational Database
Email
Server
Document
Server
Hình 11.1: Mô hình lập trình CSDL Client - Server dùng RDO
và ADO
Client Application










Trang 126
Visual Basic
















Web Browser
Client Application
ActiveX Server
(DLL or EXE)

ADO OLE DB

Database
MS Internet
Information
Server with Active
Server Pages
HTTP
DCOM
Hình 11.2: Truy cập CSDL từ trình ứng dụng & trình
duyệt WEB theo ADO
II. Mô hình ADO
Mô hình ADO được trình bày theo dạng phân cấp (tương tự DAO và RDO).
Để có thể lập trình với thư viện ADO, ta phải tham chiếu đến thư viện này bằng
cách chọn Project\References…\Microsoft ActiveX Data Object 2.0.

Hình 11.3: Mô hình ADO


















Mô hình ADO có 3 đối tượng cốt lõi:
Trang 127
Visual Basic
o Connection: kết nối CSDL thật sự.
o Command: thực thi các câu truy vấn dựa vào kết nối dữ liệu.
o RecordSet: là tập các mẩu tin được chọn từ câu truy vấn thông qua đối tượng
Command.
III Các đối tượng trong mô hình ADO
III.1 Đối tượng Connection
Dùng phương thức Open của đối tượng Connection để thiết lập kết nối với nguồn
dữ liệu. Để thực hiện điều này ta cần phải thông báo với ADO thông tin kết nối với
dạng chuỗi theo kiểu chuỗi kết nối của ODBC. Thuộc tính ConnectionString thực hiện
điều này. Ngoài ra ta còn có thể chọn trình cung cấp bằng cách quy định giá trị của
thuộc tính Provider của đối tượng.
Để
nối kết với dữ liệu, ta cần xác định trình cung cấp OLE DB và chuỗi kết nối.
Nếu không xác định được hai yếu tố này, ta sẽ sử dụng trình cung cấp mặc định là
ODBC: MSDASQL.
Một số trình cung cấp có sẵn:
9 Microsoft OLEDB cho các trình điều khiển ODBC.
9 Microsoft OLEDB cho Oracle.
9 Microsoft Jet 3.51 OLEDB (Access).
9 Microsoft Jet 4.0 OLEDB (Access)
9 Microsoft OLEDB cho SQL Server.
9 Microsoft OLEDB cho các dịch vụ thư mục.
Ví dụ:

Đối với trình cung cấp ODBC, thuộc tính ConnectionString có thể là m
ột DSN hay
là một kết nối không có DSN (DSN cấp thấp).

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = "MSDASQL"
cn.ConnectionString = "DSN=Baigiang"
cn.Open

Kết nối DSN cấp thấp:

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = "MSDASQL"
cn.ConnectionString = "DRIVER={SQL Server};” & _
“DATABASE=Baigiang;UID=myuser;PWD=mypassword;"
cn.Open

Trong trường hợp này việc kết nối với cơ sở dữ liệu Server được thực hiện nhanh
hơn vì chương trình không cần đọc thông tin về các DSN trên máy Client, tuy nhiên
thông tin về nguồn cơ sở dữ liệu lại kết chặt với chương trình đã biên dịch.
Để kết nối với cơ sở dữ liệu Access, ta dùng trình cung cấp Jet với chuỗi kết nối là
đường dẫn đến tập tin .mdb
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = "MicroSoft.Jet.OLEDB.4.0"
cn.ConnectionString = "d:\data\baigiang.mdb"
Trang 128
Visual Basic

cn.Open
Đối với cơ sở dữ liệu SQL Server, ta có thể dùng trình cung cấp SQLOLEDB.1,
trong trường hợp này, chuỗi kết nối tương tự như trường hợp kết nối dùng trình cung
cấp ODBC không có DSN, tuy nhiên ta không cần xác định giá trị của DRIVER:
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = “SQLOLEDB.1”
cn.ConnectionString = “DATABASE=DBHH;” & _
“SERVER=www;UID=user;PWD=user”
cn.Open

Mở và đóng nối kết nguồn dữ liệu
Để phát các yêu cầu đến nguồn dữ liệu sử dụng ADO, ta cần mở kết nối đến
nguồn dữ liệu đó bằng phương thức Open của đối tượng Connection. Cú pháp đầy đủ
như sau:
connection.Open [connect], [userid], [password]
Tất cả các tham số của phương thức Open đều là tùy chọn, nếu như các thông số
này đã được xác
định thông qua các thuộc tính khác của đối tượng Connection thì ta
không cần mô tả chúng ở đây.
Khi đã hoàn thành tất cả các thao tác liên quan đến nối kết này, ta cần phải đóng
nối kết một cách tường minh thông qua phương thức Close của đối tượng Connection.
connection.Close
Đóng nối kết một cách tường minh sẽ đảm bảo rằng tất cả các tài nguyên liên
quan đến nối kết này trên Server cũng như Client đều được giải phóng một cách h
ợp
lý.
Xác định vị trí con trỏ
Con trỏ (Cursor): một tập các mẩu tin được trả về cho chương trình. Vị trí con
trỏ được xác định nhờ thuộc tính CursorLocation (có ở cả đối tượng Recordset). Có 2

giá trị có thể chỉ định:
9 adUseClient: con trỏ phía Client.
9 adUseServer: con trỏ phía Server (mặc định).
Thực thi các câu truy vấn hành động
Các câu truy vấn hành động (Insert, Update, Delete) được thực hiện nhờ phương
thức Execute của đối tượ
ng Connection; ngoài ra phương thức này cũng có thể được sử
dụng để thực thi các thủ tục lưu trữ sẵn trong cơ sở dữ liệu hay các câu SELECT. Cú
pháp phương thức này như sau:
Nếu không có kết quả trả về:
connection.Execute CommandText, RecordsAffected, Options
Có kết quả trả về:
Set recordset = connection.Execute (CommandText, RecordsAffected, Options)
Trong đó:
- connection: Đối tượng Connection.
- recordset: Đối tượng Recordset là kết quả trả về của phương thức Execute, tuy
nhiên, người ta th
ường ít khi sử dụng cách này. Thay vào đó, người ta thường sử dụng
phương thức Open của đối tượng Recordset.
Trang 129

×