Đề tài Xây dựng phần mềm quản lý trung tâm đào tạo tin học

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

 

doc37 trang | Chia sẻ: maiphuongdc | Lượt xem: 1358 | Lượt tải: 4download
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, nh­ng 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 (nh­ng 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;” L­u ý 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:

  • doc35358.doc