1 Mục lục 1 2 Làm quen với visual basic 0 9


Làm việc với tài liệu và nơi chứa CSDL



tải về 1.69 Mb.
trang32/39
Chuyển đổi dữ liệu09.10.2016
Kích1.69 Mb.
#32631
1   ...   28   29   30   31   32   33   34   35   ...   39

13.7Làm việc với tài liệu và nơi chứa CSDL


Tài liệu cơ sở dữ liệu là một cấu trúc DAO cho phép ta tham chiếu đến các phần tử của cơ sở dữ liệu một cách tổng quát. Chúng còn cung cấp khả năng mở rộng các tính năng của cơ sở dữ liệu Jet. Ta truy cập các thuộc tính của một tài liệu cơ sở dữ liệu thông qua đối tượng Container.

Đối tượng Container sở hữu bộ các đối tượng Document.

Tương tự như nhiều đối tượng khác có sẵn trong DAO, ta có thể dùng lập trình DAO để lặp xuyên qua nơi chứa và tài liệu. Ví dụ sau đây trình bày cách lặp xuyên qua các đối tượng Collection Document trong một cơ sở dữ liệu Jet.

Option Explicit

' References DAO 3.51

Private db As Database

Private con As Container

Private doc As Document

Private Sub Form_Load()

Set db = OpenDatabase("..\..\DB\novelty.mdb")

End Sub

Private Sub cmdView_Click()



lstOutput.Clear

For Each con In db.Containers

lstOutput.AddItem con.Name

For Each doc In con.Documents

lstOutput.AddItem " " & doc.Name

Next


Next

End Sub


Cần phải hiểu điểm khác biệt giữa tài liệu cơ sở dữ liệu và tập hợp DAO. Ví dụ, một tập hợp của TableDef tham chiếu đến tất cả các TableDef ta mở ra trong chương trình. Trái lại, tài liệu Tables chứa các tham chiếu đến tất cả các tài liệu bảng trong cơ sở dữ liệu mà ta mở. Trong Jet, nơi chứa Tables bao gồm các tài liệu như là truy vấn chứa sẵn và các bảng hệ thống (bắt đầu bằng “MSys”).

Ta sử dụng các đối tượng Container Document trong những trường hợp sau:



  • Ta muốn gán việc cho phép bảo mật cho một đối tượng trong một cơ sở dữ liệu bảo mật .

  • Ta muốn tạo hoặc lấy về các thuộc tính hiệu chỉnh cho tất cả các thành phần của một cơ sở dữ liệu bằng cách lặp xuyên qua các tập hợp

Ngoài việc kiểm tra nội dung của các tại liệu cơ sở dữ liệu hiện hành, DAO còn cho phép ta định nghĩa và tự tạo các tài liệu, chúng có thể chứa trong cơ sở dữ liệu cùng với tài liệu mặc định.

Các tài liệu hiệu chỉnh bao hàm trong mô hình đối tượng Jet để hỗ trợ các mở rộng. Ý tưởng chung là để ngăn ngừa mô hình đối tượng hiện hành cấm các tính năng mới.


13.8Tạo và sử dụng các thuộc tính hiệu chỉnh của đối tượng DataBase


Ta có thể tham chiếu đến các thuộc tính của DAO một cách tổng quát. Điều này cho phép khả năng mở rộng, cho phép ta thêm các thuộc tính riêng và đọc thuộc tính của các đối tượng hiện hành dù cho ta có biết những gì chúng được gọi hay không.

Ta truy cập đến danh sách tổng quát các thuộc tính của DAO thông qua tập hợp Properties và đối tượng Property. Ta có thể tạo một thuộc tính mới bằng cách sử dụng phương thức CreateProperty của đối tượng Document. Các thuộc tính được cung cấp bởi tập hợp Properties được gọi là thuộc tính động bởi vì chúng có thể khác nhau giữa một cơ sở dữ liệu này và một cơ sở dữ liệu khác hay giữa các phiên bản khác nhau của bộ máy cơ sở dữ liệu.

Ví dụ sau đây trình bày cách thức tập hợp Properties hoạt động. Đây là thủ tục phát sinh danh sách các thuộc tính mặc định hiện có trong một cơ sở dữ liệu.

Option Explicit

' References: Microsoft DAO 3.51

Dim db As Database

Dim pr As Property

Private Sub Form_Load()

Set db = OpenDatabase("..\..\DB\novelty.mdb")

End Sub


Private Sub cmdShow_Click()

On Error Resume Next

lstOutput.Clear

For Each pr In db.Properties

With pr

lstOutput.AddItem .Name & _



": " & .Value

End With


Next

End Sub


Có 13 thuộc tính mặc định của một đối tượng Database hiện có thông qua tập hợp Properties, bao gồm những phần cố định như là Name, Version, Connect, cũng như các thuộc tính không thể truy cập trực tiếp, như là AccessVersion Build.

Vì vậy, ta có thể viết chương trình như sau:

MsgBox db.Name

Vậy, tại sao ta không viết chương trình để truy cập một thuộc tính của cơ sở dữ liệu :

MsgBox db.Properties (“Name”)

Câu trả lời là ta có thể tựtạo các thuộc tính hiệu chỉnh và gán chúng đến bất kfy DAO nào ( không chỉ đến đối tượng Database), Ví dụ sau tạo một thuộc tính mới trong cơ sở dữ liệu.

Private Sub cmdCreate_Click()

On Error Resume Next

Dim prp As Property

Set prp = db.CreateProperty("DateLastBackedUp", dbDate, Now)

db.Properties.Append prp

cmdShow_Click ' update list of properties

End Sub

Sau đây là cú pháp đầy đủ của phương thức CreateProperty:



obj.CreateProperty ([propertyName], [datatype] , [value], [ddl] )

  • Tham biến PropertyName là một chuỗi chỉ ra tên của một thuộc tính mới

  • Tham biến DataType chỉ ra kiểu dữ liệu của thuộc tính mới.

  • Tham biến Value cung cấp một giá trị khởi tạo cho thuộc tính.

  • Tham biến ddl là một giá trị boolean chỉ ra thuộc tính mới có phải là một đối tượng DDL hay không. Nếu đúng, những người sử dụng không có quyền sửa đổi cấu trúc cơ sở dữ liệu, sẽ không thể sửa đổi thuộc tính hiệu chỉnh.

Để lấy về thuộc tính hiệu chỉnh sau khi tạo ra, ta chỉ cần truy cập nó thông qua tập hợp Properties của đối tượng Database.

13.9Tổng kết


Chương này giải thích về lý thuyết thống nhất và quan trọng của lập trình DAO. Nếu là người xử lý giởi, ta có thể tiến hành phần lớn các hoạt động ta từng làm trong thế giới truy cập cơ sở dữ liệu của Visual Basic.

13.10Hỏi và đáp


Hỏi: Dùng DAO có phù hợp với lập trình CLient / Server không ?

Đáp: Có thể sử dụng DAO cho lập trình Client / Server, nhưng tốt hơn nên dùng ADO. ADO cung cấp một giao diện chương trình tương tự như DAO, nhưng một số tính năng mới bổ sung (như là khả năng truy cập đến trình cung cấp dữ liệu không quan hệ, các kết nối và truy vấn không đồng bộ, và một mô hình đối tượng đơn giản hơn. )

Hỏi: Tôi đang tạo một ứng dụng dựa trên Jet. Vậy tôi nên tiếp tục dùng DAO hay là chuyển sang dùng ADO ?

Đáp: Nếu ứng dụng của bạn hoạt động tốt với DAO, bằng mọi cách, giữ lại kỹ thuật DAO. Đó là mô hình đối tượng dành cho cơ sở dữ liệu Jet. ADO có một số chỗ không thể làm được như DAO đã làm, ví dụ, bạn có thể tạo ra một cơ sở dữ liệu Jet trong DAO, nhưng bạn không thể làm được điều đó với ADO.




tải về 1.69 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   28   29   30   31   32   33   34   35   ...   39




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương