Các đối tượng truy cập dữ liệu - Pdf 63

1 Các đối tượng truy cập dữ liệu
• Sử dụng mô hình đối tượng DAO.
• Sử dụng DAO để làm việc với dữ liệu.
• Tạo đối tượng để thao tác với cấu trúc cơ sở dữ liệu.
Ta có thể dùng DAO ( đối tượng truy vấn cơ sở dữ liệu –Data Access Object) để thao tác với cơ sở
dữ liệu thông qua lập trình với Visual Basic. Với DAO, ta có thẻ thi hành các câu truy vấn, cập
nhật giá trị trong các bảng cơ sở dữ liệu và tạo cấu trúc cơ sở dữ liệu bao gồm các bảng , các câu
truy vấn chưa sẵn và mối quan hệ giữa các bảng.
DAO được các nhà lập trình Visual Basic sử dụng để truy cập các cơ sở dữ liệu trên máy tính cá
nhân hay Client / Server. Nhưng với sự ra đời của ADO, giờ đây nó chỉ thích hợp để dùng cơ sở dữ
liệu Jet mà thôi. Còn đối với việc phát triển các hệ Client / Server mới, chủ yếu ta tận dụng thế
mạnh của ADO.
1.1 Sử dụng mô hình đối tượng DAO
Mô hình đối tượng DAO khá phức tạp với hàng trăm yếu tố. Hàng tá kiểu tập hợp chứa hàng tá đối
tượng, mỗi đối tượng lại có thuộc tính, phương thức và các đối tượng con của riêng nó.
Sau đây là mô hình cây phân cấp của đối tượng DAO:
DBEngine
DBEngine
Workspace
Database
TableDef
Field
Index
Field
QueryDef Recordset Container Relation
User
Group
Group
User
Error
object only

• Các sự kiện: là các thông điệp mà đối tượng có thể gửi đến các ứng dụng đang sử dụng đối
tượng. DAO cũng có các sự kiện riêng.
1.1.2 Sử dụng điều khiển DAO Data
Ta có thể sử dụng điều khiển DAO data để kết nối với một cơ sở dữ liệu Jet của Microsoft. Mặc dù
với sự xuất hiện của điều khiển mạnh hơn, ADO Data, việc sử dụng điều khiển DAO Data bị giảm
bớt, nhưng vẫn tồn tại lý do để sử dụng điều khiển cổ điển DAO data. Ngoài ra, nó còn có khả
năng kết nối với các nguồn dữ liệu như các tập tin dBASE, văn bản, bảng tính Excel mà không cần
phải dùng ODBC (nối kết cơ sở dữ liệu mở).
Lưu ý : Nguyên lý cơ bản của điều khiển DAO tương tự với điều khiển ADO Data, chỉ khác ở
phần chi tiết. Để sử dụng điều khiển, ta gán tên của tập tin cơ sở dữ liệu vào thuộc tính
DatabaseName rồi chọn một bảng hoặc một nguồn dữ liệu nào khác trong thuộc tính
RecordSource. Sau cùng, ta sẽ ràng buộc các điều khiển giao diện người sử dụng như là các hộp
văn bản với điều khiển bằng cách chỉ ra giá trị cho thuộc tính DataSource và DataField của từng
điều khiển giao diện người sử dụng
1.1.3 Sử dụng thuộc tính Connect của điều khiển DAO Data để truy cập
nguồn dữ liệu bên ngoài
Thuộc tính Connect xác định loại cơ sở dữ liệu kết nối đền điều khiển Data. Theo mặc định, thuộc
tính này được chỉ định là Microsoft Access., nhưng ta có thể sửa đổi chỉ định này nếu ta muốn kết
nối với một kiểu dữ liệu không phải Access. Các kiểu dữ liệu này được gọi là các kiểu dữ liệu bên
ngoài.
Jet hỗ trợ các kiểu cơ sở dữ liệu trên máy tính cá nhân sau đây:
• dBASE III,IV và 5.0
• Phiên bản Excel 3.0, 4.0, 5.0 và 8.0
• Phiên bản Foxpro 2.0, 2.5, 2.6 và 3.0
• Lotus spreadsheet với định dạng WK1, WK3 và WK4.
• Phiên bản Paradox 3.x, 4.x và 5.x
• Tập tin văn bản ASCII có phân cách.
Ví dụ : Sử dụng điều khiển Data để nối với file excel 5.0 là excel-db.xls
Thuộc tính : Connect = Excel 5.0; DatabaseName= excel-db.xls; RecordSource = Sheet$ ..
Lưu ý : DAO không hỗ trợ một số hoạt động trên cơ sở dữ liệu bên ngoài. Đặc biệt, cơ sở dữ liệu

Phương thức OpenDatabase có tham số bắt buộc – tên của cơ sở dữ liệu ta muốn mở.
Cú pháp : (Đối tượng Workspace được mặc định )
OpenDatabase(dbName, [options], [readonly],[connect])
Tham số Mô tả
Options Nếu tham số này là true,cơ sở dữ liệu mở trong chế độ loại trừ; không
ai có thể mở cơ sở dữ liệu trong chế độ loại trừ. Nếu giá trị này là
false, những người khác có thể mở cơ sở dữ liệu.
Readonly Nếu tham số này là True, ta không thể sửa đổi cơ sở dữ liệu.
Connect một chuỗi chỉ ra cách thức kết nối với cơ sở dữ liệu; chuỗi thường chỉ
được dùng cho những nguồn dữ liệu Client / Server và ODBC.
1.2.1.22.1.2 Sử dụng phương thức Execute để thi hành truy vấn hành
động
Sử dụng Execute của đối tượng Database để thi hành một câu lệnh SQL trên SQL. Phương thức
này nên dùng để:
• Cập nhật, xoá hay sao chép mẩu tin (trong Access / Jet, ta gọi là các truy vấn hành động )
• Sửa cấu trúc dữ liệu
Các câu truy vấn SELECT được thi hành qua phương thức OpenRecordset của Database.
1.2.2 Sử dụng đối tượng Recordset
Ta sử dụng đối tượng Recordset để thao tác với các mẩu tin trong DAO. Đối tượng Recordset cung
cấp một giao diện hướng đối tượng cho mô hình cơ sở dữ liệu quan hệ liên quan đến các bảng
được chia thành những mẩu tin và trường.
Để tạo một recordset, ta chủ yêu sử dụng phương thức OpenRecordset.
1.2.2.1Sử dụng phương thức OpenRecordset để tạo một đối tượng
Recordset
Trong DAO, các đối tượng Database, Connection, QueryDef, TableDef, và Recordset đều có
phương thức OpenRecordset. Tất cả đều được dùng với cùng mục đích; truy cập dữ liệu chứa
trong cơ sở dữ liệu.
Phương thức OpenRecordset thực sự là một hàm trả về một đối tượng Recordset, ta cần khai báo
một đối tượng Recordset trước khi sử dụng OpenRecordset.
Dim db As Database

Hằng Ý nghĩa
dbOpentable Trong một workspace của Microsoft Jet, tạo một đối tượng
Recordset kiểu bảng ( bảng được đánh chỉ mục chỉ sử dụng
một bảng )
dbOpenDynamic Trong một workspace kiểu ODBCDirect, mở một đối tượng
Recordset kiểu dynamic ( cập nhật được dữ liệu khi người
khác sửa đổi và truy vấn dữ liệu qua nhiều bảng )
dbOpenDynaset Mở một đối tượng kiểu Dynaset ( tham chiếu đến recordset
của nhiều bảng hoăc từ nhiều cơ sở dữ liệu khác)
dbOpenForwardonly Mở một đối tượng Recordset mà con trỏ của nó chỉ có thể di
chuyển tới
1.3 Sử dụng đối tượng Field để thao tác với các trường
Đối tượng Field thể hiện một trường trong một cấu trúc dữ liệu. Các đối tượng TableDef,
Recordset, Relation và Index đều chứa các tập hợp trường.
Ta có thể lấy giá trị của một trường bằng cách kiểm tra giá trị của thuộc tính Value của một đối
tượng Field . (Bởi vì thuộc tính Value là thuộc tính mặc định của đối tượng Field, ta chỉ cần tham
chiếu đến đối tượng Field; ta không nhất thiết phải tham chiếu tường minh đến thuộc tính Value).
1.4 Sửdụng các phương thức duyệt với đối tượng Recorset
Sau khi tạo xong một đối tượng Recordset, ta có thể dùng các phương thức duyệt để di chuyển qua
từng mẩu tin trong recordset. Ta chủ yếu thực hiện điều này trong trường hợp cần lấy về dữ liệu từ
mọi mẩu tin trong một recordset, mặc dù ta còn có thể sử dụng chúng để cho phép người sử dụng
chỉ duyệt qua các mẩu tin.
Các phương thức duyệt của một đối tượng Recrdset gồm có:
• MoveFirst : di chuyển đến mẩu tin đầu tiên trong recordset.
• MoveNext : di chuyển đến mẩu tin kế tiếp trong recordset.
• MovePrevious : di chuyển về mẩu tin trước đó trong recordset.
• MoveLast: di chuyển đến mẩu tin cuối cùng trong recordset.
• Move : di chuyển một số mẩu tin đã được chỉ định trước.
1.4.1 Sử dụng BOF và EOF để duyệt qua Recordset
Ngoài các phương thức trên, đối tượng Recordset cung cấp 2 thuộc tính cho ta biết khi ta di chuyển

Dim db As Database
Private Sub Form_Load()
Set db = OpenDatabase("..\..\db\novelty.mdb")
End Sub
Private Sub cmdCount_click()
Dim rs As Recordset
Set rs = db.OpenRecordset("tblInventory")
rs.MoveLast
MsgBox "There are " & rs.RecordCount & _
" items in inventory.", vbInformation
End Sub
Lưu ý : Nếu muốn xác định số mẩu tin là 0 dùng thuộc tính BOF và EOF thay vì dùng
RecordCount
1.4.4 Dùng phương thức Edit để sửa đổi giá trị trong một mẩu tin
Ta có thể sửa đổi mâu tin hiện hành trong một đối tượng Recordset cập nhật được bằng cách dùng
phương thức Edit và Update của recordset. muống sửa đổi giá trị của một trường trong một
Recordset, theo các bước sau :
1. Dùng các phương thức duyệt của đối tượng Recordset để di chuyển đến mẩu tin cần sửa
đổi.
2. Thi hành phương thức Edit của recordset.
3. Dùng tập hợp Fields của đối tượng Recordset để gán giá trị cho trường trong mẩu tin :
rs.Fields(“LastName”)= “Smith”
hoặc
rs!LastName = “Smith”
4. Lưu mẩu tin vào cơ sở dữ liệu bằng cách dùng phương thức Update của Recordset.
1.4.5 Sử dụng phương thức AddNew và Update để tạo mẩu tin mới
Ta có thể tạo một mẩu tin mới trong đối tượng Recordset cập nhật được bất kỳ bằng cách dùng
phương thức AddNew và Update. Tạo một mẩu tin mới trong một recordset là quá trình 3 bước:
1. Thi hành phương thức AddNew của RecordSet. Nó thêm một mẩu tin mới, trắng vào cuối
của recordset.


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status