Phần I Giới thiệu đề tài 1
Phần II Phân tích hệ thống thông tin trung tâm đào tạo tin học 2
Giai đoạn I : Đánh giá yêu cầu 2
1. Đánh giá yêu cầu 2
2. Vấn đề nảy sinh 3
3. Đánh giá khả thi của giải pháp 4
Giai đoạn II :Phân tích chi tiết 5
1, 2 Lập kế hoạch và nghiên cứu hệ thống thông tin hiện tại 5
3. Chẩn đoán và xác định các yếu tố của giải pháp 6
Giai đoạn III: Phân tích Logic 7
1. Sơ đồ luồng dữ liệu DFD 7
2. Thiết kế cơ sở dữ liệu từ các thông tin đầu ra 8
Phần III Kỹ thuật lập trình ADO bằng Visual Basic 10
I. Xây dựng ứng dụng Visual Basic với ADO 10
1. Tìm hiểu cấu trúc OLEDB /ADO 10
2. Cài đặt và tham chiếu đến ADO trong ứng dụng VB 11
3. Sử dụng ADO với các loại đối tượng truy cập dữ liệu khác 12
4. Sử dụng đối tượng Connection để truy cập cơ sở dữ liệu 13
5. Làm việc với con trỏ 14
6. Chiến lược khoá bản ghi 15
7. Mở và đóng kết nối 15
8. Sử dụng đối tượng Recordset của ADO 16
9. Sử dụng đối tượng command và parameter của ADO 19
10. Dùng đối tượng Field của ADO để truy cập dữ liệu 21
11. Sử dụng đối tượng Error để bắt lỗi 22
12. Sử dụng đối tượng Properties 23
II. Sử dụng dịch vụ dữ liệu từ xa của ADO 23
Phần IV. Xây dựng phần mềm quản lý trung tâm đào tạo tin học 25
I. Giới thiệu 25
II. Các đặc trưng của phần mềm
III. Giao diện các chức năng chính của phần mềm và cách thức sử dụng 27
Kết luận 35
Tài liệu tham khảo 36
37 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1437 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng phần mềm quản lý trung tâm đào tạo tin học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ồ sơ học viên
Mã học viên, Họ và tên, ngày sinh, giới tính, địa chỉ, điện thoại, theo học lớp nào, Thuộc khoá học nào
Giám đốc trung tâm
Lưu trữ thông tin về học viên
5
STP
Sổ thu học phí
Tên học viên, Lớp học, khoá học, lần thu phí 1, lần thu phí2, lần thu phí 3, Ngày thu
Kế toán trung tâm
Lưu trữ và theo dõi thông tin về học phí của học viên
6
DSK
Danh sách khoá học
Mã khoá học, tên khoá học, số giờ, học phí, số tiền đóng mỗi đợt
Phụ trách trung tâm
Cung cấp danh sách các khoá học mà trung tâm đang đảm nhiệm
7
DSL
Danh sách lớp học
Mã lớp, khoá học, giờ học, giáo viên ứng với giờ học, ngày khai giảng
Hạn thu hểt học phí
Phụ trách trung tâm
Cung cấp các danh sách khoá học mà trungtâm đang đảm nhiệm
2.2 Sơ đồ cấu trúc dữ liệu DSD ( Data Structure Diagram )
Phòng học
Thời khoá biểu
Lớp học
Giáo viên
Phụ Trách
Học viên
Khoá học
Học phí
MaPhongHoc
DiaDiem
ID
MaLop
ThoiGianHoc
MaLop
MaGiaoVien
NgayKhaiGiang
MaPhongHoc
HanTraHetHP
MaKhoaHoc
Email
DienThoaiGV
GioiTinh
NgaySinhGV
TenGiaoVien
MaGiaoVien
MaGiaoVien
MaKhoaHoc
MaLop
MaHocVien
TenHV
NgaySinh
GioiTinh
DiaChi
DienThoai
TenKhoaHoc
ThoiGian
HocPhi
Lan1
Lan2
Lan3
MaKhoaHoc
MaHocVien
PhiLan1
NgayTra1
PhiLan2
NgayTra2
PhiLan3
NgayTra3
MaKhoaHoc
2.3 Sơ đồ quan hệ thực thể ERD ( Entity Relationship Diagram )
PHẦN III
GIỚI THIỆU KỸ THUẬT LẬP TRÌNH ADO BẰNG VISUAL BASIC
Cho ®Õn VB 5.0, ADO (®èi tîng d÷ liÖu Activex – Activex Data Object ) trë thµnh nÒn t¶ng cña kü thuËt truy cËp c¬ së d÷ liÖu internet. Trong VB6, ADO 2.0 cµng quan träng h¬n – m¹nh mÏ h¬n. ta cã thÓ dïng ADO kh«ng chØ ®Ó truy cËp c¬ së d÷ liÖu th«ng qua trang web, mµ cßn cã thÓ dïng nã ®Ó lÊy d÷ liÖu tõ øng dông viÕt b»ng Visual Basic. ADO lµ giao diÖn dùa trªn ®èi tîng cho c«ng nghÖ d÷ liÖu míi næi gäi lµ OLE DB
OLE DB ®îc thiÕt kÕ ®Ó thay thÕ ODBC nh mét ph¬ng thøc truy cËp d÷ liÖu. ODBC hiÖn thêi lµ tiªu chuÈn phÝa client sö dông windows rÊt phæ biÕn ®Ó truy cËp c¸c d÷ liÖu quan hÖ bëi v× nã thiÕt lËp c¸c server c¬ së d÷ liÖu quan hÖ cµng tæng qu¸t cµng tèt ®Õn c¸c øng dông client. OLE DB ®i s©u h¬n mét bíc b»ng c¸ch lµm cho tÊt c¶ nguån d÷ liÖu trë thµnh tæng qu¸t ®èi víi øng dông client
I. X©y dùng øng dông Visual Basic víi ADO
ADO lµ c«ng nghÖ truy cËp c¬ së d÷ liÖu híng ®èi tîng t¬ng tù DAO vµ RDO
ADO hiÖn nay ®îc Microsoft xem lµ kü thuËt ®Ó truy cËp c¬ së d÷ liÖu tõ web server. Bëi v× ADO ®îc cung cÊp díi d¹ng th viÖn activeX Server (t¬ng tù ADO vµ RDO), ta cã thÓ tho¶i m¸i dïng ADO trong øng dông visual basic. trong thùc tÕ , b»ng nhiÒu c¸ch , ta sÏ thÊy r»ng sö dông ADO ®Ó lµm viÖc víi c¬ së d÷ liÖu Client / Server th× dÔ h¬n c¸c kü thuËt kh¸c .
1. T×m hiÓu cÊu tróc OLE DB /ADO
PhÇn lín c¸c nhµ lËp tr×nh visual basic kh«ng t¬ng t¸c trùc tiÕp víi OLE DB .
Tr×nh cung cÊp OLE DB kh«ng nhiÒu nh c¸c tr×nh ®iÒu khiÓn ODBC, nhng sè lîng nµy ®· t¨ng lªn ®¸ng kÓ tõ khi ADO 2.0 ®îc ph¸t hµnh vµo n¨m 1998 . Phiªn b¶n nµy, ®· ®îc ®· vµo Visual Basic 6.0, bao gåm c¸c tr×nh cung cÊp côc bé cho SQL server, Oracle, vµ Microsoft Jet / Access.
Cã nhiÒu kh¶ n¨ng b¹n cã thÓ dïng ADO vµ OLE DB ®Ó ®¹t ®îc nguån d÷ liÖu quan hÖ ngay khi kh«ng cã tr×nh cung cÊp OLE DB côc bé. Bëi v× ®· cã mét tr×nh cung cÊp OLE DB tæng qu¸t cho c¬ së d÷ liÖu quan hÖ ODBC.
Ta chØ cÇn lËp tr×nh víi phÇn giao diÖn ngêi sö dông ë phÝa client. Bëi v× viÖc truy cËp d÷ liÖu trªn c¶ tr×nh duyÖt web vµ øng dông Visual Basic ®îc chuyÓn hÕt vÒ phÝa ActiveX Server ,ta cã thÓ b¶o ®¶m r»ng logic ch¬ng tr×nh lu«n nhÊt qu¸n, bÊt kÓ lo¹i øng dông nµo ®ang ®îc dïng.
Client Application
Client WorkStation
Remote Data Object
ODBC Driver
ODBC Driver Manager
ActiveX Data Object
OLEDB Data Provider
OLEDB
Relation Database
Document Server
Email Server
H×nh trªn m« t¶ sö dông ADO vµ OLEDB ®Ó truy nhËp c¬ së d÷ liÖu
2. Cµi ®Æt vµ thiÕt lËp tham chiÕu ®Õn ADO trong øng dông visual basic.
ADO ®îc cµi ®Æt nh mét phÇn cña Visual Basic 6.0. Phiªn b¶n míi nhÊt cña ADO cho phÐp t¶i xuèng miÔn phÝ t¹i ®Þa chØ.
http : //www.microsoft.com/data/ado/. Khi Microsoft ph¸t hµnh c¸c cËp nhËt vµ nh÷ng tÝnh n¨ng t¨ng cêng cho ADO, ta cã thÓ t¶i xuèng tõ web. Nhí r»ng c¸c chøc n¨ng ADO víi m«i trêng ph¸t triÓn bÊt kú cã thÓ ®îc xö lý víi c¸c ®èi tîng Activex / COM, bao gåm Visual Basic, Visual C++, Microsoft office ,vµ kÞch b¶n trªn web Active Server Page.
Sau khi cµi ®Æt xong, ta b¾t ®Çu sö dông nã b»ng c¸ch thiÕt lËp tham chiÕu ®Õn th viÖn ADO trong øng dông VB, t¬ng tù nh khi ta thiªt lËp tham chiÕu ®Õn th viÖn ADO hay RDO:
trong ®Ò ¸n visual basic ,chän project , references.
hép tho¹i references xuÊt hiÖn .
chän vµo hép ®¸nh dÊu “microsoft activeX data objects 2.0 library” råi nhÊn Ok
Khi tham chiÕu th viÖn ADO trong ®Ò ¸n, b¶o ®¶m r»ng kh«ng cã tham chiÕu ®Õn th viÖn “microsoft activeX data objects 2.0 recordset”. §©y lµ phiªn b¶n lo¹i nhÑ cña th viÖn ADO ®îc thiÕt kÕ ®Ó sö dông trªn phÝa client cña øng dông client / server. Nã chØ hç trî c¸c ®èi tîng Recordset vµ field. NÕu nhËn thÊy r»ng kh«ng thÓ t¹o ®îc instance cña ®èi tîng Connection hay Command trong øng dông ADO, ta cã thÓ nghÜ ®Õn nguyªn nh©n nµy.
3. Sö dông ADO víi c¸c th viÖn ®èi tîng truy cËp d÷ liÖu kh¸c.
NÕu b¹n t¹o øng dông ®îc thiÕt kÕ ®Ó sö dông ADO kÕt hîp víi th viÖn ®èi tîng truy cËp d÷ liÖu kh¸c, nh ADO, cÇn ph¶i cÈn thËn ph©n biÖt gi÷a, vÝ dô nh, ®èi tîng Recordset cña DAO vµ Recordset cña ADO. Chóng kh«ng thÓ ®æi chç cho nhau ®îc.
NÕu ta tham chiÕu ®Õn võa DAO võa ADO trong ®Ò ¸n vµ ta t¹o mét biÕn Recordset, lµm thÕ nµo ®Ó nhËn biÕt Recordset cña DAO hay cña ADO ? C©u tr¶ lêi lµ thø tù ta thiÕt lËp tham chiÕu vµo ®Ò ¸n. NÕu ta thªm mét tham chiÕu ®Õn th viÖn DAO tríc, t¹o ®èi tîng Recordset sÏ cho ta mét Recordset kiÓu DAO ta cÇn dïng tªn líp ®Çy ®ñ ADODB. Recordset ®Ó t¹o ®èi tîng Recordset cña ADO mét c¸ch têng minh. (tªn têng minh cña mét líp cßn ®îc hiÓu nh lµ progID ).
Mét sè m«i trêng ph¸t triÓn, nh lµ ASP vµ c¸c phiªn b¶n cò cña øng dông Microsoft Office, kh«ng hç trî rµng buéc sím. §iÒu nµy cã nghÜa lµ ta kh«ng thÓ thiÕt lËp tham chiÕu ®Õn th viÖn ®èi tîng theo c¸ch cã thÓ lµm b»ng hép tho¹i Recordset trong Visual Basic. §èi víi c¸c m«i trêng ®ã, ta lu«n lu«n dïng có ph¸p ®èi tîng th viÖn ®Ó t¹o ®èi tîng tõ th viÖn ADO. NÕu kh«ng muèn tham chiÕu trùc tiÕp ®Õn th viÖn ®èi tîng trong ch¬ng tr×nh ta cã c¸ch kh¸c. Ta cã thÓ kiÓm so¸t th viÖn ®èi tîng nµo ®îc truy cËp mÆc ®Þnh b»ng c¸ch dïng gi¸ trÞ møc u tiªn trong hép tho¹i References .
VÝ dô, ®Ó cÊp cho th viÖn ®èi tîng DAO møc u tiªn cao h¬n th viÖn ®èi tîng ADO, ta lµm nh sau :
Trong ®Ò ¸n VB, chän Project, References
Tham chiÕu ®Õn Microsoft dao 3.51 objects library vµ Microsoft ActiveX Data Objects 2.0 library (gi¶ sö chóng ®· ®îc cµi ®Æt trªn m¸y )
NhÊn (nhng kh«ng bá chän) vµo tham chiÕu ®Õn th viÖn ®èi tîng DAO
NhÊn vµo mòi tªn trá lªn – xuèng cã tªn lµ Priority. Tham chiÕu ®Õn th viÖn ®èi tîng DAO di chuyÓn vÒ phÝa trªn danh s¸ch. §iÒu nµy cã nghÜa lµ DAO sÏ ®îc dïng khi ta t¹o mét ®èi tîng ( nh lµ ®èi tîng Recordset ) cã cïng tªn víi ®èi tîng trong th viÖn ADO. ví dụ :
Option Explicit
' references dao 3.51
' references ado 2.0
Dim db As dao.Database
Private adoRS As ADODB.Recordset
Private daoRS As dao.Recordset
Private cn As ADODB.Connection
Sub Form_load()
Set cn = New ADODB.Connection
StrSQL = "SELECT * from tblGiaoVien"
……..
End Sub
4. Dïng ®èi tîng Connection cña ADO ®Ó kÕt nèi víi nguån d÷ liÖu
1.4.1. ChØ ra tr×nh cung cÊp ®Ó kÕt nèi
Dïng chuçi kÕt nèi trong ADO ®Ó cung cÊp th«ng tin vÒ c¸ch thøc kÕt nèi víi Server c¬ së d÷ liÖu. Ta dïng tr×nh cung cÊp ODBC cho OLE DB, chuçi kÕt nèi t¬ng tù chuçi kÕt nèi ODBC. §iÒu nµy cã nghÜa lµ th«ng tin chÝnh x¸c ®îc mong chê bëi tr×nh ®iÒu khiÓn ODBC cã thÓ thay ®æi tuú theo c¸ch thùc hiÖn. §èi víi c¸c tr×nh cung cÊp kh¸c, chuçi kÕt nèi cã thÓ cã mét có ph¸p hoµn toµn kh¸c.
Khi ta dïng tr×nh cung cÊp ODBC, thuéc tÝnh ConnectString cã thÓ lµ mét DSN (Tªn nguån d÷ liÖu) hay nã lµ kÕt nèi kh«ng cã DSN. §©y lµ mét vÝ dô cña mét kÕt nèi ®Õn c¬ së d÷ liÖu dïng tr×nh cung cÊp ODBC víi DSN:
cn.Provider = “MSDASQL”
cn.ConnectString = “DSN=MyDB” ‘ với MyDB là tªn DSN ta t¹o
Sö dông mét DSN trong chuçi kÕt nèi dÜ nhiªn yªu cÇu mét DSN tªn lµ MyDB thùc sù tån t¹i trªn m¸y Client.
Connection object
Errors Collection
Error object
Properties Collection
Properties object
Properties
Attributes
CommandTimeOut
ConnetionString
ConnectionTimeOut
CursorLocation
DefautDatabase
Errors Collection
Isolation Level
Mode
PropertiesCollection
Provider
State
Version
Methods
BeginTrans
Cancel
Close
CommitTrans
Execute
Open
OpenSchema
RolbackTrans
Events
BeginTransComplete
CommitTransComplete
ConnectComplete
Disconnect
ExecuteComplete
Informessage
RolbackTransComplete
WillConnect
WillExecute
M« h×nh ®èi tîng Connection cña ADO
Trêng hîp kÕt nèi kh«ng cã DSN:
cn.Provider = “MSDASQL”
cn.ConnectString = “DRIVER= {SQL=Server};DATABASE=MyDB”;UID=randy;PWD=prince;”
KÕt nèi nµy sÏ nèi kÕt server nhanh h¬n bëi v× nã 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 v× nã g¾n chÆt th«ng tin nèi víi ch¬ng tr×nh ®· ®îc biªn dÞch.
VÝ dô kÕ tiÕp thÓ hiÖn ®èi tîng Connection dïng tr×nh cung cÊp Microsoft Jet OLE DB. §èi víi tr×nh cung cÊp Jet, chuçi kÕt nèi lµ ®êng dÉn vµ tËp tin MDB:
cn.Provider = “Microsoft Jet OLE DB.3.51”
cn.ConnectString = “c:\data\CSDL.mdb”
§Ó kÕt nèi víi c¬ së d÷ liÖu b¶o mËt dïng ADO vµ tr×nh cung cÊp Jet, 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 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 OLE DB.3.51”
cn.ConnectString = “c:\data\CSDL.MDB” ‘ KÕt nèi víi c¬ së d÷ liÖu Access 97
cn.properties (“password”) = “mypass”
cn.properties (“User ID”) = “myname”
cn.Open
§Ó nèi víi mét c¬ së d÷ liÖu SQL Server, ta dïng tr×nh cung cÊp SQLOLEDB.1:
cn.Provider = “SQLOLEDB.1”
cn.ConnectString = “DATABASE= mydata; SERVER = mysvr; UID = user; PWD = mypass;”
Lu ý r»ng ë 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.ConnectString = user/mypass
5. Làm việc với con trỏ
Tương tự RDO và DAO, ADO hỗ trợ một số kiểu con trỏ. Ngoài việc cung cấp hỗ trợ duyệt qua các mẩu tin tại một thời điểm , các kiểu con trỏ khác nhau cho phép ta điều khiển cách quản lý của một Recordset.
Quy định vị trí con trỏ bằng cách gán gán giá trị con trỏ cho thuộc tính Recordset
Kiểu con trỏ
Hằng
Mô tả
Phía Client
adUseClient
Tạo con trỏ phía client
Phía Server
adUseServer
Tạo con trỏ phía Server
Forward-Only
adOpenForwardOnly
Không dùng con trỏ ta chỉ có thể chuyển
về phía trước trong recordset. nếu sử dụng MovePrious và MoveNext sẽ sinh lỗi
Keyset
adOpenKeyset
Ta sẽ không thấy mẩu tin mới do người sử dụng khác thêm vào nhưng khi họ xoá, sửa sẽ làm ảnh hưởng đến Recordset của ta
Dynamic
adOpenDynamic
Ta có thể thấy toàn bộ thay đổi trên dữ liệu do những người khác thực hiện trong khi ta đang mở recordset
Static
adOpenStatic
bản sao toàn bộ cơ sở dữ liệu của một recordset
6. Chiến lược khoá bản ghi
ADO cho phép quy định các kiểu khoá mẩu tin khác nhau. Ta dung chức năng này khi cần kiểm soát cách thức cập nhật mẩu tin với nhiều người sử dụng trong cơ sở dữ liệu.
Hằng
Mô tả
AdLockReadOnly (Mặc định)
cấm cập nhật mẩu tin
AdLockPressimistic
Mẩu tin trong Recordset sẽ bị khoá ngay khi bắt đầu sửa đổi, tiếp tục khoá cho đến khi thi hành phương thức Update hay di chuyển qua mẩu tin khác
AdLockOptimistic
Mẩu tin bị khoá ngay trong khi thi hành phương thức Update hay di chuyển qua mẩu tin khác
AdLockBatchOptimistic
Cập nhật nhiều mẩu tin cùng lúc
7. Đóng và mở kêt nối đến nguồn dữ liệu
- Mở một connection : Cn.Open [connect], [UserID], [Password]
- Đóng một connection: Cn.Close và Set Cn=Nothing để huỷ hẳn biến connection
Ví dụ :
‘ Tham chiếu đến ADO 2.1
Dim Cn as connetion
Private Sub Form_Load()
Set cn=new connection
Cn.open “DSN=MyDB;”
End sub
Đoạn chương trình này giả sử rằng ta có tên nguồn dữ liều ODBC (DSN) là MyDB được cài trên máy. Nếu chưa cài DSN này, hay không muốn tạo nó trên máy Client, ta có thể cung cấp tất cả thông tin kết nối cùng lúc dưới dạng một kết nối không có DSN.
Khi đã hoàn tất với đối tượng Connection của ADO, ta nên luôn luôn đóng nó bằng phương thức Close. Cn.Close
Đóng kết nối một cách tường minh bảo đảm rằng tài nguyên bất kỳ (trên Client hoặc Server hoặc cả hai) liên quan với kết nối này đều được nhả đúng quy ước.
8. Sử dụng đối tượng Recordset của ADO để thao tác với dữ liệu
Đối tượng Recordset của ADO, tương tự Recordset của DAO và rdoResultset của RDO, là phương pháp truy cập thông tin được trả về từ trình cung cấp dữ liệu, Recorset của ADO có nhiều thuộc tính và phương thức trùng với Recordset của các mô hình khác, vì thế có thể làm việc với chúng tương tự các Recordset khác. Xem mô hình sau để thấy được cấu trúc của đối tượng RecordSet
Thủ tục tạo Recordset của ADO tương tự tạo rdoResultset của RDO. Tuy nhiên, ADO thêm một thay đổi lý thú: khả năng tạo đối tượng Recordset không đòi hỏi một đối tượng Connection ngầm (Khác với Recordset ngắt kết nôí - kết nối vẫn có, nhưng không có biến đối tượng thể hiện nó).
Ví dụ sau trình bày cách tạo đối tượng Recordset của ADO theo cách cổ điển. Kỹ thuật này gần gũi với nhà lập trình RDO - trước hết tạo đối tượng Connection, rồi thi hành truy vấn trên kết nối bằng cách truyền một câu truy vấn SQL đến phương thức Execute của đối tượng Connection.
Lưu ý: Chuỗi lệnh tạo Recordset của ADO có thể là tên bảng tên truy vấn, hay câu lệnh SQL nó hoạt động tương tự phương thức OpenRecordset trong DAO.
Ví dụ: Tạo đối tượng Recordset của ADO dùng đối tượng Connection và Recordset.
Option Explicit
‘References ADO 2.1
Private cn As Connection
Private Sub Form Load ()
Set cn = new ADODB. Connection
Cn.connectionString = “DSN = MyDB”
Cn. Open
End Sub
Private Sub cmdquery CN Click()
Dim rs As ADODB. Recordset
Set rs = new ADODB. Recordset
Rs. Source = “select * ”&–
“from tblcustomer”& –
“where State = ‘DE’ ”& –
“Order by LastName, FirstName”
Set rs. Active Connection = cn
rs. Open
1srData.. Clear
Do Until rs. EOF
lstData. AddItem rs. Fields (“FirstName”)
Rs. Fields (“LastName”) & “ ” &
Rs. Fields (“Address”)
Rs. MoveNext
Loop
End Sub
Private Sub From UnLoad (Cancel As Integer)
Cn. Close
Set cn = Nothing
End Sub
Recordset object
Fields collection
Field object
Property collection
Property object
Properties
AbsolutePage
AbsolutePosition
ActiveCommand
ActiveConnection
BOF
Bookmark
CacheSize
CursorType
DataMember
DataSource
EditMode
EOF
Fileds collection
Filter
LockType
MarshalOptions
MaxRecords
PageCount
PageSize
PropertiesCollection
RecordCount
Sort
Source
State
Status
StayInSync
Methods
AddNew
Cancel
CancelBatch
CancelUpdate
Clone
CompareBookmarks
Delete
Find
GetRows
GetString
Move
MoveFirst
MoveLast
MoveNext
MovePrevious
NextRecordset
Open
Requery
Resync
Save
Supports
Update
UpdateBatch
Events
EndOfRecordset
FetchComplete
FetchProgress
FieldChangeComplete
MoveComplete
RecordChangeComplete
RecordsetChangeComplete
WillChangeField
WillChangeRecord
WillChangeRecordset
WillMove
Các thuộc tính và phương thức của đối tượng Recordset của ADO được liệt kê trong mô hình
Như một giải pháp khác cho kỹ thuật này, ADO cho phép tạo Recordset không cần tạo đối tượng Conection trước. Ta truyền một chuỗi kết nối cho phương thức Open của đối tượng Recordset.
Private Sub cmdQueryRS Click ()
Dim rs As ADODB. Recordset
Det rs = New ADODB. Recordset
Rs. Source = “select”
“from tblcustomer” &
where State = ‘DE’ &
“order by LastName, FirstName”
rs. ActiveConnection = “DSN=MyDB”
rs. Open
lstData.Clear
Do Until rs. EOF
lstData. AddItem rs. Fields (“FirstName”) & “ ”&
Rs. Fields (“LastName”) & “ ”&
Rs. Fields (“Address”)
Rs.MoveNext
Loop
End Sub
Đoạn chương trình này làm việc, không cần sửa đổi, trên mọi nguồn dữ liệu quan hệ có điều khiển ODBC. Ta có thể dễ dàng sửa đổi chương trình để nó hoạt động với một trong những trình cung cấp OLE DB cục bộ - chỉ cần thêm một dòng lệnh,quy định thuộc tính Provider của đối tượng Connection.
Kỹ thuật này tiện dụng trong trường hợp ta không cần kết nối thường xuyên đến cơ sở dữ liệu và trở ra. Nếu ứng dụng muốn có kết nối thường xuyên với cơ sở dữ liệu, ta nên mở và duy trì một đối tượng Connection. Tốt nhất nên giữ kết nối được mở liên tục dến cơ sở dữ liệu thay vì lặp đi lặp lại việc mở và đóng.
8.1. Dùng đối tượng Recordset để cập nhật và thêm mẩu tin mới.
Thêm mới và cập nhật mẩu tin trong ADO hầu như tương tự trong DAO.
8.1.1. Thêm mẩu tin mới.
1.Mở Recordset.
2.Thi hành phương thức Addnew của đối tượng Recordset
3.Gán giá trị cho các trường trong đối tượng Recordset
4.Lưu mẩu tin bằng cách thi hành phương thức Update của đối tượng Recordset
Rs.AddNew
‘ Các lệnh cập nhật vào các trường dữ liệu
Rs.Update
8.1.2. Cập nhật mẩu tin.
1. Mở Recordset
2. Gán giá trị cho các trường trong Recordset (Lưu ý rằng ta không cần thi hành phương thức Edit của đối tượng Recordset như ta làm với DAO– ADO không làm như thế).
3. Lưu mẩu tin bằng cách thi hành phương thức update của đối tượng Recordset.
Ứng dụng minh hoạ nhập mới và cập nhật mẩu tin cho phép ta hiển thị hộp danh sách các khách hàng, rồi chọn một khách hàng để soạn thảo.
Option Explicit
'References ADO 2.1
Private cn As ADODB.Connection
Private mrscust As ADODB.Recordset
Private Sub form_load()
Set cn = New ADODB.Connection
cn.ConnectionString = "DSN=MyDB;"
cn.Open
Set mrscust = New ADODB.Recordset
mrscust.LockType = adlocktimistic
mrscust.CursorType = adOpenKeyset
End Sub
Private Sub cmdlist_click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Source="select*"&_
"from tblcustomer"&_
"where state='DE'=&_
"order by LastName, FirstName"
Set rs.ActiveConnection = cn
rs.Open
lstdata.Clear
Do Until rs.EOF
…
Để sử dụng ứng dụng này, thi hành nó, rồi nhấn nút showlist để hiển thị danh sách khách hàng. Khi người sử dụng nhấn trên một khách hàng trong danh sách, chi tiết về khách hàng đó hiển thị trong các hộp văn bản. Để sửa đổi mẩu tin, sửa giá trị trong hộp văn bản, rồi nhấn update.
Để cập nhật, thủ tục sự kiện click của nút update trả về dữ liệu và sau đó thi hành cập nhật trên đó. Đây không phải là cách hiệu quả nhất trong môi trường client/server, nhưng nó hoạt động tốt với cơ sở dữ liệu access.
Lưu ý rằng trong ADO chế độ khoá mẩu tin mặc định là chỉ đọc vì vậy ta phải đổi thuộc tính lockmode của đối tượng Recordset sang chế độ soạn thảo trước khi thi hành cập nhật hay thêm mới.
Điểm khác biệt đáng kể giữa chương trình này và chương trình viết bằng DAO là ADO không có phương thức Edit. Nếu Recordset cho phép sửa đổi ta chỉ cần đổi nội dung của một trường và sau đó thi hành phương thức update để ghi thông tin về cơ sở dữ liệu.
Để thêm mới mẩu tin, ta thêm một nút lệnh Add As new vào ứng dụng:
Trong một ứng dụng thực tế ta bọc chức năng Update và Insert trong lệnh save. Kiểm tra trạng thái của Recordset chẳng hạn, nếu nó chứa một giá trị trong trường khoá chính nghĩa là mẩu tin cần cập nhật hơn là thêm mới.
9. Thi hành một truy vấn sử dụng các đối tượng command và parameter của ADO.
Sau khi kết nối thành công với nguồn dữ liệu thông qua đối tượng Connection ta bắt đầu phát các lệnh trên kết nối đó. Ta dùng đối tượng command của ADO.
Vị trí của đối tượng command trong mô hình đối tượng của ADO như sau:
Command object
Properties
ActiveConnection
CommandText
CommandTimeout
CommandType
Name
ParametersCollection
Prepared
Propertiescollection
State
Methods
Cancel
CreateParameter
Execute
Parameter collection
Parameter object
Properties collection
Property object
Các phương thức và thuộc tính của đối tượng Command của ADO
Trong các ví dụ trước ta chỉ dùng đối tượng connection và Recordset không dùng command. Nói chung ta dùng đối tượng command khi ta muốn thi hành một thủ tục chứa sẵn hay ta cần phát một truy vấn có tham số.
Lưu ý: Một hứa hẹn của kỹ thuật OLE DB và ADO là trong tương lai các trình cung cấp dữ liệu khác. Ví dụ một bản tính có thể cung cấp lệnh tính toán lại, một nơi chứa thư điện tử có thể có một số kiểu gửi thư. Thủ tục gét data sau đây là mở rộng của ví dụ trước sử dụng đối tượng command để gọi một truy vấn chứa sẵn có tham số. Hàm này trả về một Recordset khi nó thi hành.
Public Function GetData(lngID As Long) As ADODB.Recordset
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim p As ADODB.Parameter
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = Conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "Query1"
Set p = cmd.CreateParameter("PID", adInteger, adParamInput, , lngID)
cmd.Parameters.Append p
Set rs = cmd.Execute
Set GetData = rs
Set rs = Nothing
End Function
Truy vấn có tham số cho ta tính linh hoạt của một truy vấn mà ứng dụng có thể sửa đổi lúc thi hành cùng với hiệu quả của một truy vấn đã được biên dịch.
Vị trí của Parameter của ADO trong mô hình đối tượng của ADO như sau:
Command object
Parameters collection
Parameter object
Properties
Attributes
Direction
Name
NumericScale
Precision
Propertiescollection
Value
Size
Type
Methods
AppendChunk
10. Dùng đối tượng Field của ADO để truy cập dữ liệu của Recordset
Dùng đối tượng Field và tập hợp Fields khi có một đối tượng Recordset của ADO và ta muốn đọc hay sửa đổi giá trị trong trường dữ liệu của mẩu tin hiện hành. Kỹ thuật này gần như đồng nhất với tập hợp cùng tên trong DAO và RDO.
Vị trí của đối tượng Field của ADO trong mô hình đối tượng của ADO như sau:
Recordset object
Fields collection
Field object
Properties collection
Property object
Properties
ActualSize
Attributes
DataFormat
DefinedSize
Name
NumericScale
OriginalValue
Precision
Propertiescollection
Type
UnderlyingValue
Value
Methods
AppendChunk
GetChunk
Nói chung nếu đã quen thuộc trong việc truy cập trường dữ liệu trong đối tượng Recordset của DAO ta sẽ thấy ở đây không có gì khác.
11. Dùng tập hợp Errors của ADO để xử lý lỗi.
Trong ADO hay các mô hình đối tượng truy cập cơ sở dữ liệu khác một số lỗi có thể sảy ra.
Vị trí của đối tượng Error của ADO trong mô hình đối tượng của ADO như sau:
Connection Object
Errors Collection
Error object
Properties
Description
HelpContext
HelpFile
NativeError
Number
Source
SQLState
Trong Visual basic một lỗi phát sinh khi ADO bắt gặp lỗi. Tương tự DAO và RDO ta có thể lặp xuyên qua tập hợp Errors để hiển thị hay xử lý trên các thông báo lỗi giữa Client và Server.
12. Sử dụng tập hợp Properties của ADO để kiểm tra các thuộc tính đặc biệt của một trình cung cấp.
Ngoài các đối tượng và thuộc tính qui ước DAO cung cấp tập hợp Properties mở rộng có thể đựơc gán cho từng đối tượng trong mô hình đối tượng. Tương tự ADO cũng cung cấp tập hợp này nhưng với sự khác biệt quan trọng – các đối tượng Property của ADO không thể được tạo ra hay sửa đổi bởi ứng dụng. Thay vào đó chúng chịu sự điều khiển của trình cung cấp dữ liệu.
Vị trí của đối tượng Property của ADO trong mô hình đối tượng của ADO như sau:
Connection object
Properties collection
Property object
Properties
Attributes
Name
Type
Value
Command object
Field object
Recordset object
Với trình cung cấp ODBC của OLE DB số thuộc tính của trinh cung cấp được mở rộng rất nhiều. Nhớ rằng kiểu và giá trị của các thuộc tính này thay đổi tuỳ theo trình cung cấp.
II. DỊCH VỤ DỮ LIỆU TỪ XA CỦA ADO
Dịch vụ dữ liệu từ xa (Remote Data Services) dùng để lấy các recordset của ADO từ Web server. Thư viện này , đi kèm với ADO , chủ yếu cho phép ta dùng HTTP (vận chuyển trên mạng của Web) làm vận chuyển trên mạng cho ứng dụng cơ sở dữ liệu. chủ yếu được dùng trong các ứng dụng trình duyệt Web (Client), nó cũng hoạt động tốt với các Client của VB.
Lưu ý RDS có tên cũ là Nối kết dữ liệu nâng cao (Advanced Data Connector - ADC). Bạn có thể tìm hiểu thêm tại địa chỉ :
http:// www.microsoft.com/data/ado/rds
Ta có thể dùng đối tượng Data Control của RDS để lấy về một đối tượng Recordset của ADO trên Internet. Đối tượng này được phục vụ từ một máy chạy với Microsoft Internet Information Server 3.0 trở lên, có khả năng trả về đối tượng Recordset của ADO đến bất kì Client qua HTTP . Cách dễ nhất để minh hoạ cách dùng RDS là thi hành một truy vấn trên Web Server dùng đối tượng DataControl của RDS.
1. Tạo một đề án Standard EXE mới.
2. Trong menu Project References, Lập một tham chiếu đến Microsoft Remote Data Services 2.0 Library và Microsoft ActiveX Data Objects 2.0 Recordset Library.
3.Tạo mộ
Các file đính kèm theo tài liệu này:
- 35358.doc