Phân tích và thiết kế hệ thống thông tin cho trung tâm đào tạo tin học

Tài liệu Phân tích và thiết kế hệ thống thông tin cho trung tâm đào tạo tin học: ... Ebook Phân tích và thiết kế hệ thống thông tin cho trung tâm đào tạo tin học

doc37 trang | Chia sẻ: huyen82 | Lượt xem: 3242 | Lượt tải: 1download
Tóm tắt tài liệu Phân tích và thiết kế hệ thống thông tin cho 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
PHẦN I: GIỚI THIỆU ĐỀ TÀI Hiện nay, trên các địa bàn của cả nước nói chung, địa bàn Hà Nội nói riêng xuất hiện rất nhiều hình thức đào tạo theo mô hình trung tâm như các trung tâm đào tạo tin học, trung tâm đào tạo ngoại ngữ, các trung tâm đào tạo nghiệp vụ kinh tế ngắn hạn như: kế toán, quản trị kinh doanh,…. Các trung tâm này có quy mô khác nhau. Đối với các trung tâm có quy mô nhỏ thì có thể quản lý theo hình thức thủ công – trên sổ sách. Nhưng đối với các trung tâm lớn do uy tín của mình ngày càng thu hút được nhiều học viên và do đó quy mô của trung tâm ngày càng mở rộng. Điều này làm cho hình thức quản lý một trung tâm theo cách thủ công gặp rất nhiều khó khăn. Cần thiết phải có một giải pháp tin học hoá. Điều đó đã khiến em nảy ra ý định xây dựng một hệ thống thông tin hỗ trợ quản lý một trung tâm đào tạo điển hình. Một trung tâm đào tạo tin học được lấy ra làm ví dụ để xây dựng giải pháp. Nội dung của đề án gồm 4 phần : Phần I : Giới thiệu đề tài Phần II : Phân tích thiết kế hệ thống thông tin trung tâm đào tạo tin học Phần III : Giới thiệu kỹ thuật lập trình ADO bằng Visual Basic Phần IV : Xây dựng phần mềm quản lý trung tâm đào tạo tin học Em xin chân thành cảm ơn các thầy cô giáo trong khoa Tin học Kinh tế đã trang bị cho em những kiến thức, những điều kiện về vật chất và tinh thần để hoàn thành đề tài. Đặc biệt em xin được bày tỏ sự biết ơn tới thầy giáo Phùng Tiến Hải đã trực tiếp giúp đỡ em trong quá trình nghiên cứu đề tài. Do thời gian, trình độ, kinh nghiệm còn hạn chế nên đề án chuyên ngành không tránh khỏi nhiều thiếu sót. Rất mong nhận được những ý kiến đóng góp từ phía các thầy cô giáo và các bạn sinh viên. Ý kiến xin được gửi về : Kim Văn Diệp, lớp Tin học Kinh tế 41B, Khoa THKT, Đại học KTQD Email : kv_diep@yahoo.com Hà nội, tháng 10 năm 2002 Tác giả PHẦN II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN CHO TRUNG TÂM ĐÀO TẠO TIN HỌC I- CÁC GIAI ĐOẠN CỦA PHÁT TRIỂN MỘT HỆ THỐNG THÔNG TIN Giai đoạn 1 : Đánh giá yêu cầu Giai đoạn 2 : Phân tích chi tiết Giai đoạn 3 : Thiết kế logic Giai đoạn 4 : Đề xuất các phương án của giải pháp Giai đoạn 5 : Thiết kế vật lý ngoài Giai đoạn 6 : Triển khai hệ thống Giai đoạn 7 : Cài đặt và khai thác Do đề án chuyên ngành là một học phần giúp sinh viên thực hành việc đưa kiến thức đã học vào nghiên cứu và giải quyết một vấn đề tin học, mang tính chất nghiên cứu để phục vụ học tập và là bước tập dượt cho giai đoạn thực tập sau này. Chính vì vậy, trong đề án em chỉ thực hiện được ba giai đoạn đầu tiên là Đánh giá yêu cầu, Phân tích chi tíêt, Thiết kế logic và một phần của giai đoạn 6 - Lập trình xây dựng phần mềm quản lý trung tâm đào tạo tin học. GIAI ĐOẠN I ĐÁNH GIÁ YÊU CẦU 1. Đánh giá yêu cầu Tên đề tài : Xây dựng hệ thống thông tin trợ giúp quản lý trung tâm đào tạo tin học Người yêu cầu : Trung tâm đào tạo tin học Future (đây chỉ là tên lấy ví dụ). Mô tả : - Trung tâm đào tạo tin học Future là một trung tâm đào tạo tin học có uy tín với đội ngũ giáo viên có nhiều kinh nghiệm giảng dạy và hiện nay đang giảng ở các trường đại học và làm tại các công ty tin học lớn. - Hiện nay trung tâm đang đào tạo các khoá học như sau : Tin học VP MS Word MS Excel MS Powerpoint MS Project MS Outlook MS Frontpage Kế toán VN Fast Acsoft Kế toán Mỹ Effect Quicken Lotus Note Lập trình Pascal C, C++ VB, VBScript Delphi VC++ Visual Studio.Net Java, JScript JSP ASP VBA với Excel Cơ Sở DL SQL Server Oracle MS Access Visual Poxpro Informix Network 1. Thiết kế và quản trị mạng LAN, WAN 2. Khai thác và sử dụng mạng Internet Đồ hoạ Autocad Corel Draw 3D Max SAP2000 Photoshop Illustrator Quarkxpress - Hệ thống phòng học bao gồm 3 khu nhà với 21 phòng học. Sau khi hoàn thành khoá học, học viên được cấp chứng chỉ của hội tin học Việt Nam Học phí được đóng làm 3 lần 2. Vấn đề nảy sinh Do quy mô của trung tâm khá lớn và với sự tín nhiệm của mình trung tâm ngày càng thu hút được nhiều học viên. Vì thế, quy mô của trung tâm ngày càng lớn do đó công việc quản lý trung tâm về Học viên, giáo viên, phân phối phòng học và học phí ngày càng phức tạp. Chính vì vậy trung tâm quyết định phải tin học hoá quá trình quản lý. Khó khăn trong việc trả lời người có nhu cầu học đúng lớp mà họ yêu cầu về thời gian Khó khăn trong việc quản lý và phân phối phòng học Khó khăn trong việc quản lý học phí, theo dõi học viên nợ học phí Rắc rối khi phải lưu trữ, tìm kiếm thông tin về học viên và giáo viên bằng sổ sách. Yêu cầu của trung tâm : Phải khắc phục được những nhược điểm nêu trên bằng cách xây dựng mới hệ thống thông tin cho trung tâm Khung cảnh hệ thống Học viên - Hồ sơ học viên - Hồ sơ giáo viên - Sổ sách kế toán Các báo cáo Lịch giảng dạy Thẻ học viên Thu học phí Hợp đồng giảng dạy Phiếu đăng ký HỆ THỐNG THÔNG TIN QUẢN LÝ TRUNG TÂM Người có nhu cầu học Giáo viên có nhu cầu dạy Kế toán của trung tâm Giáo viên Giám đốc trung tâm 3. Đánh giá khả thi của giải pháp Khả thi về tổ chức 2. Khả thi kỹ thuật Giải pháp này hoàn toàn khả thi về mặt kỹ thuật Yêu cầu : Phần cứng : Một máy PC Phần mềm : - Phần mềm hệ thống : Hệ điều hành Windows 9x, NT - Microsoft Office 2000 (Bắt buộc có MS Access 2000) 3. Khả thi về tài chính 1 Máy PC + 1 Máy in 11 Triệu Viết phần mềm 6,5 Triệu Hướng dẫn sử dụng 0,5 Triệu Chi phí khác 2 Triệu Tổng cộng : 20 Triệu 4. Khả thi về mặt thời gian : 75 Ngày GIAI ĐOẠN II PHÂN TÍCH CHI TIẾT 1. Lập kế hoạch nghiên cứu chi tiết 1.1 Thành lập đội ngũ Gồm các thành viên sau : Người ra quyết định : Giám đốc trung tâm Phân tích viên hệ thống Người sử dụng Lập trình viên Hướng dẫn sử dụng 1.2 Lựa chọn phương pháp và công cụ + Thực hiện phỏng vấn những người sau : - Giám đốc trung tâm - Kế toán viên - Phụ trách trung tâm ( Nhân viên đăng ký) + Nghiên cứu tài liệu : - Lịch giảng dạy - Phiếu đăng ký học - Sổ thu học phí - Hồ sơ giáo viên, học viên - Danh sách phòng học - Danh sách Khoá học, Lớp học 2. nghiên cứu hệ thống thông tin hiện tại Hệ thống thông tin hiện tại của trung tâm chủ yếu làm việc một cách thủ công nó được mô tả như sau : + Khi người có nhu cầu học tại trung tâm đến đăng ký học tại trung tâm qua bàn đăng ký. Người phụ trách của trung tâm sẽ tìm kiếm thông tin về khoá học mà người đó cần. Khi đáp ứng được nhu cầu của người học thì người phụ trách sắp xếp học viên vào đúng lớp và tiến hành thu học phí lần đầu để cấp thẻ học viên. Học phí được thu làm 3 lần trong cả quá trình của khoá học. + Khi giáo viên ký kêt hợp đồng giảng dạy với trung tâm thì họ được sắp xếp lịch dạy theo đúng thời gian biểu của họ trong hợp đồng. + Nhiệm vụ của người phụ trách là phải khớp lịch giữa người dạy và người học điều này trở nên thật sự khó khăn khi số lượng các khoá học, lớp học, giáo viên, học viên tăng lên. + Kế toán viên của trung tâm tiến hành thu học phí của học viên và viết phiếu biên nhận. + Người phụ trách kết hợp với kế toán viên để lên các báo cáo cho Giám đốc trung tâm. 3. Chẩn đoán và xác định các yếu tố của giải pháp ( mục tiêu của hệ thống mới) Vấn đề Nguyên nhân Mục tiêu Giải pháp 1. Tìm kiếm thông tin về giờ học để đáp ứng yêu cầu của người có nhu cầu học rất chậm và bị nhầm lẫn Có quá nhiều lớp và giờ học khác nhau của một khoá học. Các thông tin này lại lưu trữ trên sổ sách nên rất khó tìm Quá trình tìm kiếm thông tin được rút gọn khoảng 2 giây là có thể trả lời được Hệ thống lọc giờ học theo yêu cầu của khách hàng 2. Khi sắp lớp học thường bị nhầm lớp Do quy mô của trung tâm lớn hơn nữa lịch học tại các phòng lai khó rà soát trên sổ sách. Không còn tình trạng nhầm lẫn phòng học Hệ thống báo lỗi khi phân phòng học cho lớp khi cùng thời điểm đó lại có một lớp khác học 3. Không thể ngay một thời điểm thống kê số học viên còn nợ học phí của các lớp Các lớp nằm ở các trang khách nhau của sổ học viên Ngay lập tức lọc được số học viên còn nợ học phí lần 1, lần 2, lần 3 Xây dựng chức năng lọc theo những người còn nợ học phí trong chức năng quản lý học viên 4. Quá trình tìm kiếm các thông tin về số lớp của mỗi khoá, số học viên của mỗi lớp rất chậm Do lưu trữ thủ công 3 giây kể cả các thao tác Xây dựng chức năng tìm kiếm và lọc tích hợp trên mỗi form chức năng 5. Phải tốn nhiều giấy để lưu hồ sơ học viên, giáo viên, lớp học, khoá học … Quy mô tăng lên Giảm thiểu được số giấy tờ ghi chép và lưu trữ Sử dụng cơ sở dữ liệu để lưu thông tin có hiệu quả hơn, chi phí thấp hơn GIAI ĐOẠN III PHÂN TÍCH LOGIC 1. Sơ đồ DFD mức 0 của hệ thống ( Data Flow Diagram – Context ) Báocáo lớp học Báo cáo tài chính Hợp đồng giảng dạy thẻ học viên Phiếu lương Người có nhu cầu học 1.0 Đăng ký 2.0 Xếp lớp Học viên Lớp học 3.0 Thu học phí Giáo viên Bộ phận tài chính Sổ phân công Giám đốc trung tâm Sổ đăng ký Phiếu Đăng ký 4.0 Phân công dạy Báo cáo giảng dạy 2. Thiết kế cơ sở dữ liệu logic đi từ các thông tin đầu ra 2.1 Các tài liệu đầu ra thu thập được STT Mã TL Tên Tài liệu Phần tử thông tin trên đầu ra Nguồn Mô tả Ghi chú 1 LGD Lịch giảng dạy Lớp học, Phòng học, Tên giáo viên, Khoá học, Giờ học, ngày học Phụ trách trung tâm Phân công lịch giảng dạy cho giáo viên 2 PDK Phiếu đăng ký học Họ và tên, địa chỉ, điện thoại, ngày sinh, giới tính, Khoá học, thời gian Phụ trách trung tâm Khách hàng đăng ký học 3 HGV Hồ sơ giáo viên Mã GV, Họ tên, Ngày sinh, giới tính, ngày sinh, thời gian nhận giảng, khoá học nhận giảng, email Giám đốc trung tâm Lưu trữ thông tin về giáo viên 4 HHV Hồ 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 c._.

Các file đính kèm theo tài liệu này:

  • doc35358.doc
Tài liệu liên quan