Kết nối cơ sở dữ liệu sử dụng công nghệ ADO (ActiveX Data Objects)
ODBC là công nghệ Windows cho phép sử dụng client nối với cơ sở dữ liệu từ xa. Lưu trú trên máy Cilent, ODBC tìm cách làm cho nguồn dữ liệu quan hệ trở thành tổng quát đối với ứng dụng Client. Điều này có nghĩa là ứng dụng Client không ...
ODBC là công nghệ Windows cho phép sử dụng client nối với cơ sở dữ liệu từ xa. Lưu trú trên máy Cilent, ODBC tìm cách làm cho nguồn dữ liệu quan hệ trở thành tổng quát đối với ứng dụng Client. Điều này có nghĩa là ứng dụng Client không cần quan tâm kiểu dữ liệu cơ sở mà nó đang nối là gì.
Bởi vì đây là công nghệ phía Client, ODBC không đòi hỏi phải xử lý trên Servercuar cơ sở dữ liệu.
ODBC gồm 3 phần :
- Trình quản lý điều khiển (Driver maneger)
- Một hay nhiều trình điều khiển (Driver)
- Một hay nhiều nguồn dữ liệu (Data source).
Kiến trúc của ODBC
Tạo nguồn dữ liệu ODBC.
Để tạo một ứng dụng Client nối với cơ sở dữ liệu Client/Server dùng ODBC, trước hết ta phải cung cấp thông tin về nguồn dữ liệu trên client. Mỗi server yêu cầu những gói thông tin khác nhau để nối với client. ODBC cung cấp cho thông tin này một tên đơn giản để ta có thể tham chiếu đến nó, thay vì phải thiết lập gói thông tin từ đầu mỗi lần ta cần đến nó. Điều này cung cấp cho ứng dụng Client khả năng tham chiếu một cách dễ dàng đến tổ hợp của một điều khiển, một cơ sở dữ liệu và có thể thêm tên một người sử dụng và mật khẩu. Tên này chính là tên của nguồn dữ liệu hay DSN.
Để tạo một tên nguồn dữ liệu ODBC trên máy Client, ta theo các bước sau:
+ Đảm bảo có một SQL Server đang hoạt động vàg có thể truy cập nó từ máy Client.
+ Từ Start chọn Setting chọn ConTrol Panel
+ Nhấn đúp chuột lên biểu tượng ODBC. Hộp thoại quản trị nguồn dữ liệu xuất hiện:
Ta có thể tạo một trong ba kiểu nguồn dữ liệu ODBC:
+ User DSN: Chỉ có một người tạo ra nó được sử dụng nó và chỉ trên máy đang dùng.
+ System DSN: Bất kỳ ai sử dụng máy này cũng có thể dùng được. Đây cũng là kiểu nguồn dữ liệu mà ta cần tạo khi cài đặt ứng dụng cơ sở dữ liệu Web.
+ File DSN: Có thể được copy và sử dụng dễ dàng bởi máy khác.
Tạo System DSN
- Chọn Vào Tab System DSN trong cửa sổ ODBC Data Source Administrator.
- Nhấn nút Add
- Hộp thoại Create New Data Source xuất hiện, chọn tên của diều khiển cơ sở dữ liệu ta muốn dùng
- Nhấn Finish. Trình tạo nguồn cơ sở mới xuất hiện.
- Trong ô Name nhập tên của nguồn dữ liệu. Tên này sẽ được dùng trong ứng dụng Client để tham chiếu đến cơ sở dữ liệu, vì vậy nên đặt tên sao cho dễ nhớ.
- Điền vào ô Description thông tin mô tả về cơ sở dữ liệu, thông tin này chỉ hiển thị trong cửa sổ Control Panel
- Trong hộp kết hợp Server, chọn chọn bộ máy cơ sở dữ liệu.
- Nhấn Next, màn hình kế tiếp của trình tự động xuất hiện, hỏi ta cách Login vào Server.
- Màn hình kế tiếp của trình tự động xuất hiện, chọn vào hộp đánh dấu “Change the Default database to” rồi chọn cơ sở dữ liệu vừa đạt tên
- Nhấn Next màn hình kế xuất hiện, nhắc ta chọn thông dịch bộ ký tự (thông thường ta để mặc định trừ phi ta sử dụng bộ ký tự khác trên Server) nhấn next
- Màn hình kế cho ta chọn khả năng kích hoạt tác vụ ghi nhật ký . Thông thường ta chỉ chuyển nó thành On nếu ta đang gặp lỗi hay tìm kiếm những nguyên nhân ách tắc trong ứng dụng.
Nếu bật tuỳ chọn này thành on và quên không tắt nó thành off thì đay chính là nguyên nhân phổ biến của sự suy biến của khả năng hoạt động truy vấn khi sử dụng ODBC, Vì là công cụ gỡ rối nên nhớ chuyển nó thành off khi ta đưa ứng dụng thành sản phẩm.
- Nhấn Finish, hộp thoại xuất hiện mô tả chi tiết của nguồn dữ liệu mà ta vừa tạo. Sau đó nhấn nút Test Data Source. Trình điều khiển sẽ đáp ứng bằng cách thông báo một kết nối vừa được thiết lập thành công.
OLE DB là một tập hợp các hệ giao tiếp truy cập dữ liệu của Microsoft dùng để cung cấp sự tích hợp dữ liệu chung trên một doanh nghiệp bất chấp loại dữ liệu. Những giao diện này cho phép các nguồn dữ liệu chia sẻ thông tin của chúng qua các giao diện chung mà không cần bổ sung các chức năng CSDL không có trong nơi lưu trữ.
Ta chỉ cần lập trình với phần giao diện của người sử dụng ở phía Client, bởi vì sự truy cập dữ liệu trên cả trình trình duyệt Web và ứng dụng Visual Basic được chuyển hết về phía ActiveX Server, ta có thể đảm bảo rằng logic chương trình luôn nhất quán, bất kể loại chương trình nào đang được dùng.
Chỉ ra trình cung cấp OLE DB và chuỗi kết nối
Nếu không chỉ ra trình cung cấp, hoặc ta không dùng đối tượng Connection, ta sẽ có một trình cung cấp mặc định là trình cung cấp ODBC MSDASQL
Dùng đối tường connection của ADO để kết nối với nguồn dữ liệu.
Thuộc tính Provider của đối tượng Connection là chuỗi ký tự chỉ ra kết nối mà trình cung cấp OLE DB sẽ dùng, dùng chuỗi kết nối trong ADO ConnectionString để cung cấp thông tin về cách thức kết nối với Server. Tuỳ thuộc vào nguồn dữ liệu mà thông tin kết nối khác nhau:
- Khi ta dùng trình cung cấp ODBC:
cn.provider = “MSDASQL”
cn.ConnectionString = “DSN = tracnghiem”
Tất nhiên một DSN tên là tracnghiem phải thực sự tồn tại trên máy Client.
Trường hợp kết nối không có DSN
cn.provider = “MSDASQL”
cn.ConnectionString = “Driver =SQL Server; DataBase =Tracnghiem; UID=Hue; PID=minhhue; ”
Kết nối này sẽ nhanh hơn vì không cần đọc thông tin DSN từ bảng đăng ký của Windows. Tuy nhiên nó kém linh hoạt hơn vì nó gắn chặt thông tin đã được biên dịch
- Dùng trình cung cấp Jet thì chuỗi kết nối là đường dẫn và tập tin MDB:
cn.Provider = ”Microsoft.Jet.OLEDB.4.0 ”
cn.ConnectionString = “c:datadulieu.mdb”
Để kết nối cơ sở dữ liệu bảo mật của trình cung cấp Jet thì ta phải cung cấp thêm thông tin thông qua tập hợp Properties của đối tượng connection. Thường là tên người sử dụng, mật khẩu, vị trí của cơ sở dữ liệu chứa thông tin về bảo mật.
Cn.Provider = “Microsoft.Jet.OLEDB.4.0”
Cn.ConnectionString =”C:datadulieu.mdb”
Cn.Properties(“PassWord”) = “minhhue”
Cn.Properties(“User ID”) = “Hue”
- Để nối với cơ sở dữ liệu SQL Server, ta dùng trình cung cấp SQLOLEDB.1
cn.Provider = “SQLOLEDB.1”
cn.ConnectionString = “DATABASE = dulieu; SERVER = NameServer; UID = hue; PWD = minhhue”
Lưu ý trường hợp này, chuỗi kết nối của SQL Server tương tự với chuỗi kết nối không có DSN, ngoại trừ tham số DRIVER=
- Để kết nối với Oracle, ta dùng trình điều khiển Oracle gọi là MSDAORA
cn.Provider =”MSDAORA”
cn.ConnectionString = User/MyPassWord@ServiceName
Trên đây là cách kết nối Oracle chuẩn, tổ hợp tên người sử dụng, mật khẩu và tên dịch vụ. Ta còn có thể logon vào Oracle bằng cách cung cấp Server, tên người sử dụng như tham số cho phương thức Open của đối tượng connection
Dim cn As ADODB.Connection
Set cn = New ADODB.connection
cn.Provider = “MSDAORA”
cn.Open “Server”, “UserID”, “PasWord”
Ta có thể dùng DAO để thao tác với cơ sở dữ liệu (CSDL) thông qua môi trường lập trình Visual Basic 6.0, 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 CSDL và tạo cấu trúc CSDL 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.
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 rất nhiều đối tượng xử lý CSDL. Thông qua các tập hợp sở hữu bởi đối tượng DataBase, ta có thể thao tác trên dữ liệu và cấu trúc của CSDL chứa trong một CSDL
Trong lập trình DAO, có một tập hợp cốt lõi gồm các kỹ thuật thông dụng được sử dụng gần như cho mọi chương trình. Chúng bao gồm:
- Thi hành câu truy vấn SELECT để lấy về các dữ liệu từ CSDL
- Duyệt qua từng mẩu tin trong một RecordSet
- Thi hành câu truy vấn hành động (Update, Delete và Append, ...)
- Sửa đổi cấu trúc CSDL
- Xử lý lỗi phát sinh bởi truy cập CSDL
+ Các tập hợp hiện có trong lập trình DAO 3.5 và thể hiện của chúng:
Tập hợp | Thể hiện | Giao diện |
WorkSpaces | Thể hiện kết nối mở cho bộ máy CSDL, thông thường ta chỉ có thể có 1 workspace hoạt động tại thời điểm hiện thời | Thuộc tính Count, Append, Delete phương thức Refresh |
DataBase | Tất cả các CSDL được mở trong 1 workspace, thường ta chỉ có 1 CSDL được mở hiện thời | Thuộc tính Count, phương thức Refresh |
TableDefs | Tất cả các định nghĩa bảng hiện có trong 1 CSDL | Thuộc tính Count, Append, Delete, phương thức Refresh |
QueryDefs | Tất cả các định nghĩa truy vấn hiện có trong 1 CSDL | Thuộc tính Count, Append, Delete, phương thức Refresh |
RecordSet | Tất cả các RecordSet mở trong ngữ cảnh của một CSDL duy nhất | Thuộc tính Count, phương thức Refresh |
Parameter | Các tham số hiện có trong một QueryDef nhất định | Thuộc tính Count, phương thức Refresh |
Relations | Mối quan hệ được định nghĩa trong 1 CSDL đặc biệt | Thuộc tính Count, Append, Delete, phương thức Refresh |
Connections | Kết nối đến CSDL hiện hữu bởi 1 đối tượng workspace =ODBCDirect | Thuộc tính Count, phương thức Refresh |
Indexes | Chỉ mục thuộc về một TableDef nhất định | Thuộc tính Count, Append, Delete, phương thức Refresh |
Fields | Các trường hiện có trong một cấu trúc dữ liệu | Thuộc tính Count, Append, Delete, phương thức Refresh |
Groups | Nhoms bảo mật sở hữu bởi CSDL (tham khảo phần CSDL nhiều người sử dụng) | Thuộc tính Count, Append, Delete, phương thức Refresh |
Users | Danh sách người sử dụng xác định bởi tính năng bảo mật CSDL (tham khảo phần CSDL nhiều người sử dụng) | Thuộc tính Count, Append, Delete, phương thức Refresh |
Errors | Lỗi sinh ra do 1 hành động của DAO | Thuộc tính Count, phương thức Refresh |
Containers | Nhóm các đối tượng tài liệu định nghĩa sẵn chứa trong CSDL | Thuộc tính Count, phương thức Refresh |
Documents | CSDL, bảng, và quan hệ là những ví dụ của đối tượng | Thuộc tính Count, phương thức Refresh |
Properties | Các thuộc tính của một đối tượng DAO | Thuộc tính Count, Append, Delete, phương thức Refresh |
Sử dụng DAO để làm việc với sữ liệu
Dùng đối tượng DataBase để kết nối với 1 CSDL
+ Từ menu Project chọn Reference
+ Chọn "Microsoft DAO 3.51 Object Library"
+ Chọn OK.
Dùng phương thức OpenDataBase để tạo đối tượng DataBase
Phương thức này trả về một đối tượng DataBase do đó trước khi dùng ta phải khai báo biến đối tượng có kiểu DataBase để chưa giá trị trả về của phương thức.
Dim DB As Database
Set DB = OpenDatabase(DBName, [Option], [ReadOnly], [Connect])
DBName: Tên file CSDL
Option: = True: CSDL được mở trong chế độ loại trừ (không ai khác có thể mở nó)
= False: Mọi người có thể mở nó
ReadOnly: = True: Ta không thể sửa đổi CSDL
Connect: Cách thức kết nối với CSDL Client/Server
Dùng đối tượng RecordSet để thao tác với các mẩu tin
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 CSDL quan hệ liên quan đến các bảng được chia thành những mẩu tin và trường.
Dùng phương thức OpenRecordSet để tạo đố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 dùng để truy cập dữ liệu chứa trong CSDL.
Set Recordset = object.OpenRecordset (Source, [Type], [Options],[LlockEdits])
Recordset: | Biến đối tượng bạn muốn mở |
Object: | Đối tượng đã tồn tại để tạo có phương thức OpenRecordSet |
Source: | Một chuỗi chỉ ra nguồn dữ liệu mà RecordSet sẽ lấy, có thể là tên bảng, tên truy vấn hoặc một câu truy vấn. |
Type | Lựa chọn: Một hằng số quy định kiểu của con chỏ Recordset được mở |
Options | Lựa chọn: Một sự kết hợp hằng số chỉ ra đặc tính của Recordset |
LockEdit | Lựa chọn: Một hằng số xác định khoá của Recordset |
Type: có thể nhận các kiểu sau
Tên hằng | Mô tả (ý nghĩa) |
dbOpenTable | Tạo một đối tượng Recordset kiểu bảng trong một WorkSpaceCho phép sửa đổi bản ghi, không thể trình bày kết quả của câu truy vấn nhiều bảng |
dbOpenDynamic | Mở một đối tượng Recordset kiểu Dymamic trong 1 WorkSpace Cho phép sửa đổi, thêm hay xoá ngay khi RecordSet đang được mở ở user khác, không hiệu quả = Dynaset |
dbOpenDynaset | Mở một đối tượng Recordset kiểu Dynaset , cho phép cập nhật, cho phép lấy về các mẩu tin từ nhiều bảng = cách nối bảng, cập nhật được, tốc độ tìm kiếm chậm. |
dbOpenSnapshot | Mở một đối tượng Recordset kiểu Snapshot, nhanh hơn Dynaset, cập nhật được. chỉ trả về một bản sao còn Dynaset lấy về 1 bộ các tham chiếu RecordSet. |
dbOpenForwardOnly | (Defalt) Mở một đối tượng Recordset tương tự như Snapshot nhưng nhanh hơn Snapshot, con trỏ của nó chỉ có thể di chuyển tới phía trước |
Options:Bạn có thể dùng kết hợp của những hằng cho đối số Options
Tên hằng | Mô tả (ý nghĩa) |
dbAppendOnly | Cho phép người dùng thêm bản ghi mới, ngăn chặn sửa đổi, xoá các bản ghi đang tồn tại. |
dbSQLPassThrough | Thực hiện một câu truy vấn (Microsoft Jet snapshot-type Recordset only). |
dbSeeChanges | Phát sinh một lỗi nếu người sử dụng đang thay đổi dữ liệu mà một người sử dụng khác truy nhập vào. |
dbDenyWrite | Ngăn chặn các user khác sửa đổi hoặc thêm bản ghi. |
dbDenyRead | Ngăn chặn các user khác đang đọc trong bảng. |
dbForwardOnly | Tạo 1 con trỏ Recordset kiểu Snapshot. Nó cung cấp chỉ tương thích con trỏ kiểu Forward và bạn nên dùng hằng dbOpenForwardOnly trong hằng của lựa chon Options |
dbReadOnly | Ngăn chặn users thay đổi bản ghi. Bạn nên dùng hằng bReadOnly trong hằng của lựa chon Options |
dbRunAsync | Thi hành truy vấn đồng bộ. |
dbExecDirect | Thi hành truy vấn trực tiếp gọi bởi SQLExecDirect. Chỉ dùng lựa chọn này khi bạn không mở RecordSet. Xem thêm Microsoft ODBC 3.0 Programmer’s Reference." |
dbInconsistent | Cho phép cập nhật những mâu thuẫn (Microsoft Jet dynaset-type and snapshot-type Recordset objects only). |
dbConsistent | Chie cho phép cập nhật thích hợp (Microsoft Jet dynaset-type and snapshot-type Recordset objects only). |
LockEdits:Bạn có thể dùng những hằng cho cho đối số LockEdit
Tên hằng | Mô tả (ý nghĩa) |
dbReadOnly | Ngăn chặn user thay đổi Recordset (Default cho ODBCDirect workspaces). Bạn có thể dùng dbReadOnly trong lựa chọn options, hoặc trong LockEdit (nhưng không gồm cả 2. Nếu bạn dùng cả 2 sẽ có lỗi). |
dbPessimistic | Dùng Pesimistic khoá kết nối môi trường nhiều người dùng |
dbOptimistic | Dùng Pesimistic khoá kết nối môi trường nhiều người dùng cho đến khi thi hành phương thức Update. |
dbOptimisticValue | Dùng optimistic đặt cơ sở đồng thời nhiều giá trị trên hàng. |
dbOptimisticBatch | Cho phép cập nhật theo gói. |
Các thuộc tính, phương thức của RecordSet
+ Thuộc tính EOF (End Of File) = True khi con trỏ bản ghi ở vị trí cuối của RecordSet
+ Thuộc tính BOF (Begin Of File)=True khi ta di chuyển con trỏ bản ghi đến cuối dòng của RecordSet.
+ Các phương thức di chuyển con trỏ RecordSet
- MoveFirst: Di chuyển con trỏ đến mẩu tin đầu tiên trong RecordSet
- MoveNext: Di chuyển con trỏ đến mẩu tin kế tiếp sau trong RecordSet
- MovePrevious: Di chuyển con trỏ đến mẩu tin kế tiếp trước trong RecordSet
- MoveLast: Di chuyển con trỏ đến mẩu tin cuối cùng trong RecordSet
- Move: Di chuyển một số mẩu tin được chỉ định
+ Thuộc tính RecordCount xác định số mẩu tin trong một RecordSet
+ Phương thức Edit cho phép sửa đổi giá trị trong một mẩu tin
- Dùng phương thức duyệt để di chuyển con trỏ bản ghi đến vị trí cần sửa
- Thi hành phương thức Edit
- Dùng tập hợp Fields của đối tượng RecordSet để gán giá trị mới cho mẩu tin
- Dùng phương thức Update để cập nhật giá trị mới cho RecordSet
+ Dùng phương thức AddNew và Update để tạo mẩu tin mới
- Thi hành phương thức AddNew để thêm bản ghi mới
- Dùng tập hợp Fields của đối tượng RecordSet để gán giá trị mới cho mẩu tin
- Dùng phương thức Update để cập nhật giá trị mới cho RecordSet
+ Các phương tìm kiếm để định vị mẩu tin
- FindFirst:
- FindNext:
- FindPrevious:
- FindLast:
RecordSet.{FindFirst | FindLast | FindNext | FindPrevious} Criteria
Criteria: Một xâu chứa điều kiện tìm kiếm.
Ví dụ:
Public dao As Database
Private Sub Form_Load()
Set dao = OpenDatabase(App.Path & "qlbh97.mdb")
End sub
--------------------
Public Sub mbdao(rs As Recordset, tenbang As String)
Set rs = dao.OpenRecordset(tenbang, dbOpenSnapshot)
End sub
---------------------
Public cmdthem_Click()
Dim rs as Recordset
Call modao(rs, “loai”)
rs.AddNew
rs!maloai = "mb"
rs!tenloai = "máy bay"
rs.Update
rs.Close
End sub
----------------------
Public cmdsua_Click()
Dim rs as Recordset
Call modao(rs, “loai”)
Do While not rs.EOF
If Ucase(rs!maloai) = Ucase("mb") then
Rs.Edit
Rs!tenloai = “Máy bay moi”
Rs.Update
End if
Rs.MoveNext
Loop
rs.Close
End sub
+ Định cấu hình và sử dụng ODBC
ODBC là một công nghệ của Windows cho phép ứng dụng Client kết nối với CSDL từ xa.
ODBC gồm 3 phần:
1. Trình quản lý điều khiển (Driver manager)
2. Một hay nhiều trình điều khiển (Driver)
3. Một hay nhiều nguồn dữ liệu (Data Source)
Tạo nguồn dữ liệu cho ODBC
1. Đảm bảo rằng ta có một SQL Server đang hoạt động
2. Phóng Coltrol Panel
3. Chọn ODBC. hộp thoại quản trị nguồn dữ liệu xuất hiện
Hình 1.2 Hộp thoại Quản trị nguồn dữ liệu ODBC
User DSN: Chỉ có người tạo ra nó mới sở dụng nó và chỉ trên máy đang dùng
System DSN: Bất kỳ ai sử dụng máy này cũng có thể dùng được
File DSN: Có thể được copy và sử dụng dễ dàng bởi máy khác
Tạo System DSN
1. Chọn tab System DSN trong cửa sổ ODBC Data Source Administrator
2. Chọn Add.
3. Hộp thoại Create New Data Source xuất hiện. Chọn tên của điều khiẻn CSDL ta muốn dùng
4. Chọn Finish
5. Chọn tên của nguồn dữ liệu ở Name (Tên này sẽ được dùng trong ứng dụng Client để tham chiếu đến CSDL, vì thế nên đặt cho gợi nhớ)
6. Description chỉ định thông tin hiển thị trong cửa sổ ODBC của Control Panel
7. Trong hộp thoại Server, chọn (tên Server) SQL Server chứa CSDL mà ta đang làm việc
8. Chọn Next chọn cơ chế Login vào server. Sau đó nhập tên người sử dụng và mật khẩu. Nhấn Next
9. Chọn ô đánh dấu "Change the default database", rồi chọn cơ sở dữ liệu là "Data" từ hộp kết hợp
10. Nhấn Next. Trên màn hình nhắc ta chọn thông dịch bộ ký tự . Hãy nhấn Next
11. Màn hình kế cho ta chọn khả năng kích hoạt tác vụ ghi nhật ký
12. Chọn Finish sau đó nhấn nút Test Data Source
13. Nhấn OK , tên nguồn dữ liệu mới sẽ xuất hiện trong cửa sổ ODBC Data Source Addministrator
Kiểm nghiệm kết nối CSDL ODPC (Ping)
Công việc này được dùng khi cần xác định nguyên nhân trục trặc trong một kết nối Client/Server, là do Server, do kết nối mạng, do ODBC hay do ứng dụng Client.
Cú pháp:
ODBCPing /UUserName/ PPassWord/ SServer
Ví dụ: Để kiểm định kết nối với SQL Server = BEDROCK, UserName= randy, PassWord=Prince
ODBCPing /Urandy /Pprince / SBEDROCK
+Từ dấu nhắc DOS, gõ lệnh
ODBCPing /Urandy /Pprince / SBEDROCK
+ ODBCPING thiết lập kết nối với Server rồi thoát.
Kiểm nghiệm SQL Server DSN
1. Tạo nguồn dữ liệu ODBC tên là Novelty
2. Tạo 1 đề án Standard.EXE của VB.
3. Thêm điều khiển "Micrisoft Data Bound Grid Control"
4. Thêm đều khiển DBGrid
5. Tạo 1 form và 2 điều khiển kết nối dữ liệu
6. Đổi thuộc tính Data.DefaultType = 1 - UseODBC
7. Thiết lập thuộc tính Data.Connect = "ODBC;UID=randy; PWD=printce; DSN=Data"
8. Thiết lập thuộc tính Data.RecordSet= "SELECT * from cauhoi"
9. Quy định thuộc tính DBGrid.DataSource = Data1
10. Thi hành ứng dụng.
Truy cập dữ liệu dùng điều khiển dữ liệu từ xa
+ Điều khiển dữ liệu từ xa (Remote Data Control - RDO) là một cách truy cập dữ liệu từ xa trong một ứng dụng viết bằng Visual Basic, giao diện lập trình tương tự như điều khiển ADO Data hay DAO Data.
+ Sử dụng RDC
- Trong Visual Basic chọn menu Project, Components
- Chọn "Microsoft Remote Data Control ", thiết lập tham chiếu đến "Microsoft Data Bound Grid Control ".
- Chọn OK
- Tạo một instance cho điều khiển Remote Data và điều khiển Data Bound Grid
- Nhập tên người sử dụng vào thuộc tính RemoteData . UserName
- Nhập vào mật khẩu người dùng truy cập cơ sở dữ liệu vào thuộc tính RemoteData .Passoword
- Quy định thuộc tính SQL RemoteData.SQL = "SELECT * from Noidung"
- Chọn DSN cho cơ sở dữ liệu SQL Server ở thuộc tính Remote Data.DataSourceName. (DSN được tạo trước đây, sẽ xuất hiện trong danh sách thả xuống)
- Đặt thuộc tính DBGrid.DataSource = MSRDC1
- Thi hành ứng dụng
Sử dụng RDO trong chương trình
Đối tượng dữ liệu từ xa (Remote Data Object - RDO) được sắp xếp trong cấu trúc phân nhánh đối tượng tương tự như DAO.
+ Tạo tham chiếu đến RDO trước khi sử dụng: chọn Project/ Reference/ "Microsoft Remote Data Object 2.0"
+ Chọn OK
Thiết lập kết nối dùng đối tượng RDOConnection
Ta có thể dùng đối tượng RDOConnection để thiết lập 1 kết nối đến Server cơ sở dữ liệu từ xa trong RDO
Để tạo 1 kết nối dùng đối tượng RDOConnection, ta bắt đầu bằng công việc tạo chuỗi kết nối ODBC gồm các phần tử thông dụng:
UID | Tên login của người sử dụng |
PID | Mật khẩu của người sử dụng |
DSN | Tên nguồn dữ liệu ta tạo trong trình Quản lý Điều khiển ODBC |
SRIVER | Điều khiển ODBC mà ta muốn dùng |
DATABASE | Tên cơ sở dữ liệu mà ta muốn kết nối |
APP | Tên ứng dụng kết nối với CSDL |
LANGUAGE | Ngôn ngữ quốc tế được dùng bởi Server |
SERVER | Tên của SQL Server mà ứng dụng kết nối đến |
Ta không nhất thiết phải dùng toàn bộ các tham biến.
Ví dụ: DSN=DSNQLBH; UID=hue;PWD=minhhue
Nếu không cung cấp tên login và mật khẩu ngời sử dụng vào trong chuỗi kết nối, khi ứng dụng nối đến server, trình điều khiển ODBC sẽ hiển thị hộp thoại yêu cầu ngời sử dụng cung cấp thông tin vào.
Thi hành phơng thức EstablishConnection để thi hành kết nối
Ví dụ: Set rdo = New rdoConnection
rdo.Connect = "DSN=DSNQLBH"
rdo.EstablishConnection
Thi hành truy vấn đối với RDOQuery và RDOResultset chứa kết quả các mẩu tin trả về
Dùng đối tợng RDOQuery để tạo câu truy vấn SQL động và đối tợng RDOResualset để chứa kết quả các mẩu tin trả về thông qua phương thức OpenResultset của đối tợng RDOQuery
VD:
Public rdo as rdoConnection
------------------------
Public Sub Form_load()
Set rdo = New rdoConnection
rdo.Connect = "DSN=DSNQLBH"
rdo.EstablishConnection
End Sub
---------------------
Public Sub mbrdo(rq As rdoQuery, rs As rdoResultset)
Dim rq As rdoQuery
Dim rs As rdoResultset
Set rq = New rdoQuery
Set rq.ActiveConnection = rdo
rq.SQL = "select * from loai"
Set rs = rq.OpenResultset
Do While Not rs.EOF
If rs!maloai = "tv" Then
rs.Edit
rs!tenloai = "ti vi mau"
rs.Update
MsgBox "mau tin vua duoc sửa"
End If
rs.MoveNext
Loop
rs.Close
End Sub
----------------------
ADO là công nghệ truy cập cơ sở dữ liệu hướng đối tượng. ADO được xem là kỹ thuật để truy cập cơ sở dữ liệu từ Web Server. Vì ADO được cung cấp dưới dạng thư viện ActiveX Server. Ta có thể dùng ADO trong ứng dụng Visual Basic. Trong thực tế sử dụng ADO để làm việc với cơ sở dữ liệu Client / Server thì dễ hơn kỹ thuật khác. ADO là giao diện dựa trên đối tượng cho công nghệ dữ liệu mới OLE DB.