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
37 trang |
Chia sẻ: huyen82 | Lượt xem: 3339 | Lượt tải: 1
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, 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 c._.
Các file đính kèm theo tài liệu này:
- 35358.doc