Khóa luận Quản lý tín dụng ở ngân hàng công thương Bến Thuỷ (bằng ngôn ngữ lập trình Visual Basic)

I. Tổng quan đề tài. Đề tài nghiên cứu về vấn đề quản lý tín dụng ở ngân hàng. Từ khảo sát thực tế của bài toán về nghiệp vụ tín dụng ở ngân hàng công thương Bến Thuỷ, tôi có ý tưởng xây dựng chương trình “Quản lý tín dụng ở ngân hàng công thương Bến Thuỷ”. Với đề tài này tôi đã đi sâu nghiên cứu về nghiệp vụ tiền gửi, tiền vay và nghiệp vụ mua ngoại tệ ở ngân hàng mà công việc chủ yếu là thuộc phòng tín dụng. II. Bài toán thực tế. Hệ thống quản lý tín dụng ở ngân hàng công thương Bến Thuỷ được áp dụng cho phòng tín dụng. Chức năng cơ bản của hệ thống phân công cho các cán bộ tín dụng quản lý các khách hàng của mình. Chương trình quản lý khách hàng của mình, các cán bộ tín dụng đưa ra các báo cáo thống kê về khách hàng, tình trạng vay vốn cũng như gửi tiền của phòng tín dụng khi có yêu cầu của lãnh đạo. Khi có một khách hàng đến vay hoặc gửi tiền thì cán bộ tín dụng được phân công chịu trách nhiệm về khách hàng đó phải quản lý các thông tin sau đây của khách hàng này(gồm: Đối với khách hàng vay vốn: Hồ sơ pháp lý, hợp đồng tín dụng, hợp đồng cho vay vốn, chi tiết tài sản đảm bảo, duyệt vay, gia hạn nợ, giấy nhận nợ. Đối với khách hàng đến gửi tiền thì sẽ quản lý các thông tin sau đây: Hồ sơ tiền gửi khách hàng, rút tiền, khách hàng còn có thể mua ngoại tệ tại ngân hàng). III. Thiết kế chương trình. Từ yêu cầu thực tế của bài toán và qua khảo sát hệ thống quản lý tín dụng ở ngân hàng công thương Bến Thuỷ, tôi đã thiết kế chương trình đáp ứng yêu cầu này với ngôn ngữ Visual Basic và hệ quản trị cơ sở dữ liệu SQL Server . Trong chương trình này đã đáp ứng được những chức năng sau đây: Đã quản lý được hoạt động tín dụng ở ngân hàng gồm: Xử lý quá trình vay, gửi, thanh toán và quản lý vốn. Ngoài ra còn có một số chức năng như: Tìm kiếm, In ấn. IV. Kết luận Đây là một chương trình quản lý được xây dựng xuất phát từ thực tế của bài toán quản lý tín dụng trong ngân hàng công thương Bến Thuỷ, trong hoạt động quản lý hệ thống của ngân hàng. Chương trình giúp cho các cán bộ phòng tín dụng có thể thực hiện công việc quản lý khách hàng của mình một cách chính xác và đầy đủ hơn. * Hoàn thành chương trình quản lý tín dụng ở ngân hàng công thương Bến Thuỷ bằng ngôn ngữ lập trình Visual Basic, và hệ quản trị cơ sở dữ liệu SQL Server. * Chương trình đơn giản, dễ sử dụng. * Hướng nghiên cứu tiếp theo: Phát triển chương trình theo qui mô lớn hơn bao gồm cả giải ngân, xử lý rủi ro trong tín dụng, thanh toán bằng tài khoản, bằng SEC, xử lý các trường hợp đặc biệt như : Mất sổ tiết kiệm hoặc mất chứng chỉ nhận tiền, chết không để lại di chúc, chết để lại di chúc .

doc92 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2521 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Khóa luận Quản lý tín dụng ở ngân hàng công thương Bến Thuỷ (bằng ngôn ngữ lập trình Visual Basic), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
d÷ liÖu ®ã lµ: b¶ng HSPLCT, b¶ng HSPLDN, b¶ng HSPLSINHVIEN, b¶ng HSDADT, b¶ng HSVV, b¶ng HDDBTD, b¶ng CTTG, CTTSDB, b¶ng HSKHGT, b¶ng CTTSDB, b¶ng GHLAI, b¶ng MNT, b¶ng HSVVCNDAN, b¶ng HDCVV, b¶ng DSCTDHVV, b¶ng MLTS, b¶ng DVAY, b¶ng GNN1, b¶ng GNN2, b¶ng MLTS, b¶ng LNT, b¶ng CTTG, b¶ng NHANTHAN, b¶ng THUNO, b¶ng RUTTIEN… a. B¶ng HSPLCT. Tªn tr­êng KiÓu §é réng DiÔn gi·i MAKH MAHSPL HOTEN NGAYSINH GIOITINH HKTTRU DIENTHOAI SOCMND NGAYCAPCM NOICAP NOIOHN DIADIEMSXKD SOCNDKKD NGAYCAPCN COQUANCAP NGHANHNGHEKD Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text 5 5 25 10 5 30 10 10 10 50 50 50 10 10 30 50 M· kh¸ch hµng M· hå s¬ ph¸p lý Hä tªn kh¸ch hµng Ngµy sinh Giíi tÝnh Hé khÈu th­êng tró §iÖn tho¹i Sè chøng minh nh©n d©n Ngµy cÊp N¬i cÊp N¬i ë hiÖn nay §Þa ®iÓm s¶n xuÊt kinh doanh Sè chøng nhËn ®¨ng ký KD Ngµy cÊp chøng nhËn C¬ quan cÊp Ngµnh nghÒ kinh doanh b. B¶ng HSPL doanh nghiÖp. Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAKH MAHSP TENDOANHNGHIEP NGAYSINH GIOITINH HKTTRU DIENTHOAI SOCMND NGAYCAPCM NOICAP NOIOHN DIADIEMSXKD SOCNDKKD NGAYCAPCN COQUANCAP NGHANHNGHEKD Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text 5 5 25 10 5 30 10 10 10 50 50 50 10 10 30 50 M· kh¸ch hµng M· hå s¬ ph¸p lª Tªn doanh nghiÖp Ngµy sinh Giíi tÝnh Hé khÈu th­êng tró §iÖn tho¹i Sè chøng minh nh©n d©n Ngµy cÊp N¬i cÊp N¬i ë hiÖn nay §Þa ®iÓm s¶n xuÊt kinh doanh Sè chøng nhËn ®¨ng ký KD Ngµy cÊp chøng nhËn C¬ quan cÊp Ngµnh nghÒ kinh doanh c. B¶ng HSPL dù ¸n ®Çu t­. Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAKH MADADT TENDADT DIACHI MACAPQLDA MATIENTE MATINHTP TONGVDCTIET VONLDBD VONCDXAYLAP VONTHIETBI VONKHAC TONGVON CSTHIETKE Text Text Text Text Text Text Text Real Real Real Real Real Real Text 5 5 50 20 5 5 10 4 4 4 4 4 4 20 M· kh¸ch hµng M· dù ¸n ®Çu t­ Tªn dù ¸n §Þa chØ n¬i x©y dung dù ¸n M· cÊp qu¶n lý dù ¸n M· tiÒn tÖ M· tØnh /thµnh phè Tæng vèn chi tiÕt Vèn l­u ®éng ban ®Çu Vèn x©y l¾p Vèn thiÕt bÞ Vèn kh¸c Tæng vèn C«ng suÊt thiÕt kÕ d. B¶ng HSPL Sinh viªn. Tªn tr­êng KiÓu §é r«ng DiÔn gi¶i MKH HOTEN NGAYSNH DIENTHOAI HKTHUONGTRU SOCMND NOIOHN HCKT TENTRUONG KHOAHOC LOP KHOA DTBNAMHOC MAHSSV TGKH HTNGUOIDODAU HK SOCMNDD NOHIENNAY Text Text Text Text Text Text Text Text Text Text Text Text Real Text Text Text Text Text Text 10 25 10 10 70 10 30 100 30 20 10 20 4 20 20 20 50 10 50 M· kh¸ch hµng Hä tªn Ngµy sinh §iÖn tho¹i Hé khÈu th­êng tró Sè chøng minh nh©n d©n N¬i ë hiÖn nay Hoµn c¶nh kinh tÕ Tªn tr­êng Kho¸ häc Líp Khoa §iÓm trung b×nh n¨m häc M· häc sinh , sinh viªn Thêi gian kho¸ häc HiÖn t¹i ng­êi ®ì ®Çu Hé khÈu Sè chøng minh nh©n d©n ng­êi ®ì ®Çu N¬i ë hiÖn nay e. B¶ng HDTD (hîp ®ång tÝn dông). Tªn tr­êng KiÓu §é réng DiÔngi¶i SHDTD MAKH TENKH TONGGTTSDB NKHD Number Text Text Number Text Byte 5 50 Byte 10 Sè h¬p ®ång tÝn dông M· kh¸ch hµng Tªn kh¸ch hµng Tæng gi¸ trÞ tµi s¶n ®¶m b¶o Ngµy kÝ hîp ®ång h. B¶ng CTTSDB ( chi tiÕt tµi s¶n ®¶m b¶o). Tªn tr­¬ng KiÓu §é réng DiÔn gi¶i SOLTS MALTS HINHTHUCBD GIATRTSBD MATIENTE TYGIA GIATRIQUYVETVND SO NOIDK Integer Text Text Text Text Real Real Real Text 4 5 25 4 10 4 4 4 20 Sè l­îng tµi s¶n M· lo¹i s¶n H×nh thøc ®¶m b¶o Gi¸ trÞ tµi s¶n ®¶m b¶o M· tiÒn tÖ Tû gi¸ Gi¸ trÞ quy vÒ tiÒn viÖt nam ®ång Sè N¬i ®ang kÝ i. B¶ng CTTG (chi tiÕt tiªng göi). Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAHT HTGUI LSUAT Text Text Real 10 30 5 M· h×nh thøc H×nh thøc göi L·i suÊt k. B¶ng HSKHGT(hå s¬ kh¸ch hµng göi tiÒn). Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAKH HOTEN NGAYSINH SOCMND NGAYCAP NOICAP DIACHI DIENTHOAI MAHT Text Text Text Text Text Text Text Text Text 5 25 10 10 10 10 50 10 10 M· kh¸ch hµng Hä tªn Ngµy sinh Sè chøng minh nh©n d©n Ngµy cÊp N¬i cÊp §Þa chØ §iÖn tho¹i n. B¶ng MNT(mua ngo¹i tÖ) Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAKH HOTEN DIACHI DIENTHOAI SOTIEN LOAINGOAITE TYGIA TONGNGOAI TETHUVE Text Text Text Text Real Text Real Real 5 25 50 10 4 10 4 4 M· kh¸ch hµng Hä tªn §Þa chØ §iÖn tho¹i Sè tiÒn Lo¹i ngo¹i tÖ Tû gi¸ Tæng ngo¹i tÖ thu vÒ m. B¶ng SOVAYVON(sæ vay vèn). Tªn tr­êng KiÓu §é réng DiÔn gi¶i SOVAYVON MAKH HOTENCHUHO DIACHICHUHO NGAYSINH SOCMND NGNGHIEP MUCCHOVAY Text Text Text Text Text Text Text Real 10 5 25 50 10 10 20 4 Sè vay vèn M· kh¸ch hµng Hä tªn chñ hé §Þa chØ chñ hé Ngµy sinh Sè chøng minh nh©n d©n NghÒ nghiÖp Møc cho vay p. B¶ng HDCVV(hîp ®ång cho vay vèn). Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAKH MAHSPL HOTENKH DIACHI SOHD PHUONGTHUCVAY LOAIVAY NGAYDUYET NGAYTNCC THOIGIANVAY CACHTINHLAI NGAYTINH CACHTHUNO NGAYNGUNGTINH Text Text Text Text Text Text Text Text Text Text Text Text Text Text 5 5 25 20 5 20 10 10 10 20 20 20 30 10 M· kh¸ch hµng M· hå s¬ ph¸p lý Hä tªn kh¸ch hµng §Þa chØ Sè hîp ®ång Ph­¬ng thøc cho vay Lo¹i vay Ngµy duyÖt Ngµy tr¶ nî cuèi cïng Thêi gian vay C¸ch tÝnh l·i Ngµy tÝnh C¸ch thu nî Ngµy ngõng tÝnh l. B¶ng GHNO(gia h¹n nî). Tªn tr­êng KiÓu §é réng DiÔn gi¶i SOHDTD TENKH NGAYTRALAI GIAHANTOINGAY SOCONGVAN NGAYKY NGUOIKY NOIDUNG Text Text Text Text Text Text Text Text 10 50 10 20 10 30 50 40 Sè hîp ®ång tÝn dông Tªn kh¸ch hµng Ngµy tr¶ l·i Gia h¹n tíi ngµy Sè c«ng v¨n Ngµy ký Ng­êi ký Néi dung q. B¶ng DSTDHVV (danh s¸ch tr­êng ®¹i häc vay vèn). Tªn tr­êng KiÔu §é réng DiÔn gi¶i MATRUONG TETRUONG TINHTP DIACHI TONGSOSV SOSVVAYVON Text Text Text Text Integer Integer 5 50 50 50 4 4 M· tr­êng Tªn tr­êng TØnh thµnh phè §Þa chØ Tæng sè sinh viªn Sè sinh viªn vay vèn o. B¶ng DVAY(duyÖt vay). Tªn tr­êng KiÓu §é réng DiÔn gi¶i SOHD TENKH SOTIEN LOAINT SOTIEN1 TYGIA LSTTDIEM PCKET LSTHAN LSQHAN LSPTNTNTHAN Text Text Real Text Real Real Real Real Real Real Real 5 50 4 20 4 4 50 4 4 4 4 Sè hîp ®ång Tªn kh¸ch hµng Sè tiÒn Lo¹i ngo¹i tÖ Sè tiÒn 1 Tû gi¸ L·i suÊt t¹i thêi ®iÓm PhÝ cam kÕt L·i suÊt trong h¹n L·i suÊt qu¸ h¹n L·i suÊt ph¶i tr¶ nÕu tr¶ nî tr­íc h¹n s. B¶ng GNN1 (giÊy nhËn nî 1). Tªn tr­êng KiÓu §é réng DiÔn gi¶i KYHANSO NGAYTRA SOTIENTRA Real Text Real 4 10 4 Kú h¹n sè Ngµy tr¶ Sè tiÒn tr¶ t. B¶ng GNN2(giÊy nhËn nî 2) Tªn tr­êng KiÓu §é réng DiÔn gi¶i SOHD TENKH GNNSO NGAY STNN LTHAN LQHAN HANTRA Text Text Text Text Real Real Real Text 5 50 10 10 4 4 4 10 Sè hîp ®ång Tªn kh¸ch hµng GiÊy nhËn nî sè Ngµy Sè tiÒn nhËn nî L·i tr­íc h¹n L·i qu¸ h¹n H¹n tr¶ q. B¶ng RUTTIEN(rót tiÒn). Tªn tr­êng KiÓu §é réng DiÔn gi¶i MAKHH HOTEN TIENGOC THANG LSTHANG GOCLAI TIENCONLAISAULANTRUOC SOTR TIENCONLAI Text Text Real Integer Real Real Real Real Real 5 50 4 4 4 4 4 4 4 M· kh¸ch hµng Tªn kh¸ch hµng TiÒn gèc Th¸ng L·i suÊt th¸ng Tæng tiÒn gèc vµ l·i TiÒn cßn l¹i sau c¸c lÇn rót tr­íc Sè tiÒn rót Sè tiÒn cßn l¹i x. B¶ng THUNO (thu nî). Tªn tr­êng KiÓu §é réng DiÔn gi¶i SOHD TENKH TONGSOTIENVAY SOKHVAY KYHAN LAISUAT SOTIENTRA SOTIENLAITRA SOYIENDATRA TIENLAIDATRA TIENLAICONLAI TIENGOCCONLAI Text Text Real Integer Integer Real Real Real Real Real Real Real 5 50 4 4 4 4 4 4 4 4 4 4 Sè hîp ®ång Tªn kh¸ch hµng Tæng tiÒn vay Sè kú h¹n vay Kú h¹n L·i suÊt Sè tiÒn tr¶ Sè tiÒn l·i tr¶ Sè tiÒn ®· tr¶ TiÒn l·i ®· tr¶ TiÒn l·i cßn l¹i TiÒn gèc cßn l¹i Ch­¬ng III C«ng cô lËp tr×nh vµ hÖ qu¶n trÞ c¬ së d÷ liÖu SQL server I. L­¹ chän c«ng cô lËp tr×nh vµ hÖ c¬ së d÷ liÖu. 1. Ng«n ng÷ lËp tr×nh HiÖn nay cã nhiÒu ng«n ng÷ lËp tr×nh m¹nh nh­: Pascal, C, C++, Visual C++, Visual Basic, Java, .Net…Mçi ng«n ng÷ ®Òu cã ­u khuyÕt ®iÓm riªng. Tuy nhiªn víi ph¹m vi nghiªn cøu cña ®Ò tµi nµy t«i chän ng«n ng÷ Visual Basic víi phiªn b¶n 6.0. Visual Basic lµ mét ng«n ng÷ dÔ x©y dùng c¸c øng dông trong lÜnh vùc qu¶n lý, cung cÊp giao diÖn sö dông th©n thiÖn, cÊu h×nh cµi ®Æt c¸c øng dông ®ßi hái kh«ng cao. 2 . HÖ qu¶n trÞ c¬ sá d÷ liÖu. C¬ së d÷ liÖu cho mét hÖ thèng qu¶n lý hiÖn nay th­êng dïng chñ yÕu gåm: Foxpro, Access, SQL server, Oracle. Trong ®ã Foxpro vµ Access tÝnh b¶o mËt thÊp vµ kh«ng hç trî ®a ng­êi dïng nh­ so víi SQL Server vµ Oracle. Oracle th­êng viÖc qu¶n trÞ rÊt phøc t¹p th­êng ®­îc chän ®Ó qu¶n trÞ cho c¸c c«ng ty hoÆc tËp ®oµn lín.ViÖc chän SQL Server 2000 lµ thÝch hîp cho viÖc x©y dông c¸c dù ¸n client/server,tÝnh b¶o mËt cao vµ hç trî tèi ®a ng­êi dïng. II. C«ng cô lËp tr×nh vµ hÖ qu¶n trÞ c¬ s¬ d÷ liÖu SQL Server Khi lùa chän ng«n ng÷ lËp tr×nh ta th­êng quan t©m ®Õn kh¶ n¨ng ng«n ng÷ cã thÓ hç trî viÖc x©y dông c¸c øng dông. §èi víi ch­¬ng tr×nh qu¶n lý TÝn Dông cÇn mét ng«n ng÷ lËp tr×nh cã kh¶ n¨ng hç trî m¹nh vÒ qu¶n lý c¬ së d÷ liÖu, lËp b¸o biÓu vµ cã kh¶ n¨ng hç trî ®a ng­êi dïng. Sau khi t×m hiÓu ng«n ng÷ Visual Basic t«i nhËn thÊy Visual Basic lµ mét ng«n ng÷ lËp tr×nh m¹nh, c¬ b¶n n¨ng ®éng vµ cã kh¶ n¨ng hç trî m¹nh cho lËp tr×nh qu¶n lý c¬ së d÷ liÖu. Basic lµ mét ng«ng ng÷ dÔ häc, dÔ viÕt, cã tÝnh thèng nhÊt, chÆt chÏ vµ cã hÖ thèng kiÓm tra tù ®éng tèt. CÊu tróc ng«ng ng÷ bao gåm c¸c phÐp lÆp, ®iÒu kiÖn, xö lý m¶ng, vµ ®äc viÕt c¸c file. C¸c kû thuËt lËp tr×nh cña Visual Basic ®Òu cung cÊp ®èi t­îng Error vµ tËp hîp Error ®Ó xö lý lçi. Visual Basic cã kh¶ n¨ng hç trî lËp tr×nh víi m«i tr­êng Clien/Serverr. §èi t­îng RDO, ADO cña Visual Basic hç trî mét sè tÝnh n¨ng nh­ thiÕt lËp kÕt nèi bÊt ®ång bé, cËp nhËt hµng lo¹t vµ ®Æc biÖt ADO cßn cung cÊp kh¶ n¨ng xö lý c¸c tÝnh n¨ng nµy t¹i cïng mét thêi ®iÓm . C¸c kû thuËt lËp tr×nh qu¶n lý c¬ së d÷ liÖu mµ Visual Basic cung cÊp gåm: LËp tr×nh víi m« h×nh ®èi t­îng DAO (§èi t­îng truy cËp d÷ liÖu – Data Access Oject). LËp tr×nh víi m« h×nh ®èi t­îng RDO (§èi t­îng d÷ liÖu tõ xa – Remote Data Oject). LËp tr×nh víi m« h×nh ®èi t­îng ADO (§èi t­îng d÷ liÖu ActiveX – ActiveX Data Oject). Trong ba kû thuËt lËp tr×nh trªn t«i chän kü thuËt lËp tr×nh víi m« h×nh ®èi t­îng ADO dÓ x©y dùng ch­êng tr×nh. CÊu tróc OLEDB / ADO PhÇn lín nhµ lËp tr×nh Visual Basic kh«ng t­¬ng t¸c trùc tiÕp víi OLEDB mµ lËp tr×nh víi ADO, m« h×nh cung cÊp ®èi t­îng giao diÖn víi OLEDB . Trong Visual Basic 6.0, tr×nh cung cÊp OLEDB bao gåm c¸c tÝnh cung cÊp côc bé cho SQL Server , Oracle vµ Microsoft Jet / Access. CÊu tróc truy cËp d÷ liÖu ODBC ding tr×nh cung cÊp ODBC OLEDB. Client Workstation Client Application ActiveX Data Objects OLE DB ODBC Provider ODBC Driver ODBC Driver Manager OLEDB Relational Database CÊu tróc trªn cho phÐp ta dïng thµnh phÇn lËp tr×nh ActiveX th«ng dông trªn c¶ tr×nh duyÖt Web vµ øng dông Visual Basic. 1.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 Vb6. B¾t ®Çu sö dông ADO b»ng c¸ch thiÕt lËp ®Õn tham chiÕu ®Õn th­ viÖn trong øng dông VB t­¬ng tù nh­ ta thiÕt lËp tham chiÕu ®Õn th­ viÖn DAO hay RDO. 1.Trong ®Ò ¸n Visual Basic chän Project, References. 2.Hép tho¹i References xuÊt hiÖn. 3.Chän vµo hép ®¸nh dÊu “ Microsoft ActiveX Data Oject 2.0 Library ” råi Ên Ok. 1.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 ø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­ lµ DAO, cÇn ph¶i ph©n biÖt gi÷a c¸c ®èi t­îng, vÝ dô nh­ ®èi t­îng Recordset cña ADO vµ Recordset cña DAO. Chóng kh«ng thÓ ®æi chæ cho nhau ®­îc. NÕu ta tham chiÕu ®Õn c¶ DAO vµ c¶ ADO trong ®Ò ¸n th× th­ viÖn nµo ®­îc tham chiÕu tr­íc cã møc ­u tiªn cao h¬n. NÕu tham chiÕu ®Õn th­ viÖn DAO tr­íc, t¹o ®èi t­îng Recordset sÏ cho ta mét Recordset DAO ta cÇn dïng tªn líp ®Çy ®ñ A§OB. Rec®rset ®Ó t¹o ®èi t­îng Recordset cña ADO mét c¸ch t­êng minh. Ta cã thÓ kiÓm so¸t ®èi t­îng th­ viÖn 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ô : §Ó cung 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 : 1.Trong ®Ò ¸n VB, chän Project, References. 2.Tham chiÕu ®Õn Microsoft DAO 3.51 Oject Library vµ Microsoft ActiveX Data Oject 2.0. 3. NhÊn (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 Prioty.Tham chiÕu ®Õn th­ viÖn ®èi t­îng DAO di chuyÓn vÒ phÝa trªn danh s¸ch. Khi ®ã DAO sÏ ®­îc dïng nÕu t¹o mét ®èi t­îng cã cïng tªn víi ®èi t­îng nh­ trong th­ viÖn ADO. Muèn t¹o Recordset cña ADO ta ph¶i chØ râ lµ ADODB.Recordsset. Nh­ng khi dïng møc ­u tiªn cho th­ viÖn ®èi t­îng ta l¹i ph¶i xö lý xung ®ét vÒ tªn gäi gi÷a hai th­ viÖn. Mét gi¶i ph¸p kh¸c tèt h¬n lµ chØ râ tªn nh­ VB khai b¸o . Dim ado_RS AS ADODB.Recordset. Dim dao_RS AS ADODB.Recordset. I .4. Dïng ®èi t­îng Connection cña ADO ®Ó kÕt nèi víi nguån d÷ liÖu. - Dïng ph­¬ng thøc Open cña ®èi t­îng Connection ®Ó thiÕt lËp kÕt nèi ®Õn nguån d÷ liÖu. - Dïng thuéc tÝnh ConnectionString ®Ó th«ng b¸o cho ADO c¸ch nèi víi nguån d÷ liÖu. - Dïng gi¸ trÞ thuéc tÝnh Provider ®Ó chän tr×nh cung cÊp. ChØ ra tr×nh cung cÊp OLE DB vµ chuçi kÕt nèi. NÕu kh«ng chØ ra tr×nh cung cÊp hoÆc kh«ng dïng ®èi t­îng Connection, tr×nh bµy cÊp mÆc ®Þnh lµ tr×nh cung cÊp ODBC, MSDASQL. Khi dïng tr×nh cung cÊp ODBC, thuéc tÝnh ConnectionString cã thÓ lµ DSN (tªn nguån d÷ liÖu) hay nã lµ kÕt nèi kh«ng cã DSN. - KÕt nèi ®Õn c¬ së d÷ liÖu dïng tr×nh cung cÊp ODBC VÝ dô: KÕt nèi cã DSN. cn.Provider = “MSDSQL” sn.ConnectionString = “DSN = A” Yªu cÇu mét DSN cã tªn A ph¶i thùc sù tån t¹i trªn m¸y Client. VÝ dô: KÕt nèi kh«ng cã DSN cn.Provider = “MSDASQL” cn.ConnectionString = “DRIVER = {SQL Server}; DATABASE = A; UID = x; PD = y;” KÕt nèi nµy sÏ nèi kÕt Server nhanh h¬n 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 víi ch­¬ng tr×nh ®· ®­îc biªn dÞch… Dïng tr×nh cung cÊp Microsoft Jet OLEDB. cn.Provider = “Microsoft.Jet.OLEDB. 3.51” cn.ConnectionString = “C:\My Document\QLTD. mdb” + KÕt nèi ®Õn c¬ së d÷ liÖu b¶o mËt, 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. cn.Provider = “Microsoft.Jet.OLEDB. 3.51” cn.ConnectionString = “C:\ My Document\ QLTD. mdb” cn.Poperties (“Password”) = “mypass” cn.Poperties (“user ID”) = “myname” cn.Open KÕt nèi ®Õn mét c¬ së d÷ liÖu SQL Server ta dïng tr×nh cung cÊp SQLOLEDB.1 cn.Provider = “SQLOLEDB.1” cn. ConnectionString = “DATABASE = mydata; SERVER = mysvr; UID = user; PWD = mypass;” I.5. Lµm viÖc víi con trá Quy ®Þnh vÞ trÝ cña con trá b»ng c¸ch g¸n gi¸ trÞ cho thuéc tÝnh Recordset. C¸c kiÓu con trá cña ®èi t­îng Connection. KiÓu H»ng M« t¶ PhÝa Client PhÝa Server AdUseClient AdUseServer T¹o con trá phÝa Client T¹o con trá phÝa Server Chän con trá Client nghÜa lµ ADO vµ OLEDB xö lý c¸c ho¹t ®éng cña con trá. Con trá kiÓu Client th­êng kh«ng cã trªn Server. Th­ viÖn con trá Client cho phÐp ta t¹o mét Recordset kh«ng kÕt nèi trong ADO, cho phÐp ta thao t¸c víi c¸c mÉu tin mµ kh«ng cã kÕt nèi th­êng xuyªn ®Õn Server. Trong ADO thuéc tÝnh CursorLocation ¸p dông chung cho c¶ ®èi t­îng Recorset vµ Connection. NÕu ta g¸n thuéc tÝnh CursorLocation, tÊt c¶ c¸c Recorset t¹o ra tõ kÕt nèi ®ã ®Òu cã cïng vÞ trÝ con trá nh­ ®èi t­îng Connection. ChØ ra kiÓu con trá b»ng c¸ch g¸n thuéc tÝnh CursorType cña ®èi t­îng Recorset. Forward – only H»ng: adOpenForwardOnly M« t¶: Khi dïng con trá ta chØ cã thÓ chuyÓn vÒ phÝa tr­íc trong recordset, sö dông ph­¬ng thøc MovePrevious vµ MoveFirst sÏ sinh lçi. Keyset (Trong DAO gäi lµ dynaset) H»ng: adOpenKeyset M« t¶: Ta cã thÓ thÊy c¸c mÉu tin míi do nh÷ng ng­êi sö dông kh¸c thªm vµo nh­ng khi hä söa ®æi hay xo¸ mÉu tin sÏ lµm ¶nh h­ëng ®Õn recordset ta ®ang lµm viÖc, ®©y lµ kiÓu con trá hiÖu qu¶ nhÊt, ®Æc biÖt lµ khi Recordset kh¸ lín. Dynamic H»ng: adOpenDynamic. M« t¶: Ta cã thÓ thÊy toµn bé thay ®æi trªn d÷ liÖu do nh÷ng ng­êi sö dông kh¸c thùc hiÖn trong khi ta ®ang më Recordset, ®©y lµ kiÓu con trá Ýt hiÖu qu¶ nhÊt, nh­ng m¹nh mÏ nhÊt. Static (Trong DAO gäi lµ Snapshot) H»ng: adOpenStatic. M« t¶: B¶n sao cña toµn bé d÷ liÖu cña mét Recordset kiÓu nµy ®Æc biÖt h÷u dông khi ta ®ang t×m kiÕm d÷ liÖu hay thi hµnh b¸o c¸o kiÓu con trá nµy rÊt h÷u dông cho nh÷ng Recordset nhá. X¸c ®Þnh con trá vµ c¸c tÝnh n¨ng kh¸c hç trî bëi mét tr×nh cung cÊp Ph­¬ng thøc Supports cña ®èi t­îng ADO Recordset x¸c ®Þnh kiÓu con trá do tr×nh cung cÊp d÷ liÖu hç trî. C¸c gi¸ trÞ truyÒn vµo ph­¬ng thøc Supports: H»ng M« t¶ AdAddNew adApproxPosition adBookmark adDelete adHoldRecords adMovePrevious adResync adUpdate adUpdateBatch Thªm mÈu tin míi vµo Recordset Thuéc tÝnh AbsolutePage vµ AbsolutePosition cã s½n chóng ®Ó dïng ®Ó kÕt hîp víi thuéc tÝnh PageSize vµ PageCount cña ®èi t­îng Recordset ®Ó cho phÐp x¸c ®Þnh trong chøa mÈu tin hiÖn hµnh. Cã thÓ quy ®Þnh ®¸nh dÊu trang s¸ch hay trong Recordset. MÈu tin ®Ó xo¸ trong Recordset. MÈu tin ®­îc tr¶ vÒ CSDL mµ kh«ng cÇn ghi c¸c söa dæi hiÖn cã vµo Server Cã thÓ cuén tíi lui trong Recordset Ph­¬ng thøc Resync cã s½n Recordset cËp nhËt ®­îc. Recordset cã thÓ cËp nhËt ®­îc hµng lo¹t víi ph­¬ng thøc Update Batch. Ta cã thÓ n¹p c¸c söa ®æi trªn nhiÒu mÈu tin trong mét ho¹t ®éng duy nhÊt, c¶i tiÕn hiÖu qu¶ Client/Server I.6. Kho¸ mÈu tin trong ADO Quy ®Þnh chÕ ®é kho¸ cho ®èi t­îng Recordset cña ADO th«ng qua thuéc tÝnh lockType. 4 kiÓu kho¸ mÈu tin: 1. AdLockReadOnly: CÊm cËp nhËt mÈu tin. 2. AdLockPessimistic: Kho¸ trang bÞ quan. MÈu tin trong Recordset bÞ khãa khi b¾t ®Çu söa ®æi vµ tiÕp tôc kho¸ ®Õn khi thi hµnh ph­¬ng thøc Update hay di chuyÓn sang mÈu tin kh¸c. 3. AdLockOptimistic: Kho¸ trong l¹c quan. MÈu tin chØ bÞ kho¸ ngay lóc thi hµnh ph­¬ng thøc Update hay di chuyÓn sang mÈu tin kh¸c. 4. AdLockBatchOptimistic: Kho¸ trang l¹c quan hµng lo¹t. Hç trî cËp nhËt nhiÒu mÈu tin cïng lóc. Kho¸ mÆc ®Þnh trong ADO lµ adLockReadOnly, nÕu kh«ng ®æi thuéc tÝnh LockType vµ CursorType, c¸c recordset cña ADO sÏ lu«n lµ chØ ®äc. Dïng ph­¬ng thøc Supports cña ®èi t­îng recordset ®Ó x¸c ®Þnh tr×nh cung cÊp cã hç trî kiÓu kho¸ mÈu tin hay kh«ng. I.7. Më vµ ®ãng kÕt nèi ®Õn nguån d÷ liÖu §Ó ph¸t mét yªu cÇu ®Õn nguån d÷ liÖu dïng ADO, ta më kÕt nèi ®Õn nguån d÷ liÖu ®ã, dïng ph­¬ng thøc Open. Có ph¸p: cn. Open [Connect], [userid], [password] Toµn bé tham sè cña Open ®Òu lµ tuú chän. NÕu kh«ng cung cÊp chuçi kÕt nèi trong tham sè cña ph­¬ng thøc Open ta cã thÓ cung cÊp nã víi thuéc tÝnh ConnectionString cña ®èi t­îng Connection. 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 I .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µ Resultset cña RDO lµ ph­¬ng ph¸p truy nhËp th«ng tin ®­îc tr¶ vÒ tõ tr×nh cung cÊp d÷ liÖu. Nã cã nhiÒu thuéc tÝnh vµ ph­¬ng thøc trïng víi Recordset cña 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. 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ù nh­ trong DAO. + Thªm mÈu tin míi. Më Recordset. Thi hµnh ph­¬ng thøc Addnew cña ®èi t­îng Recordset G¸n gi¸ trÞ cho c¸c tr­êng trong ®èi t­îng Recordset. L­u mÈu tin b»ng c¸ch thi hµnh ph­¬ng thøc Update cña ®èi t­îng Recordset. + CËp nhËt mÈu tin. Më Recordset. G¸n gi¸ trÞ cho c¸c tr­êng trong Recordset (kh«ng cÇn thi hµnh ph­¬ng thøc Edit nh­ ta lµm víi DAO). L­u mÈu tin b»ng c¸ch thi hµnh ph­¬ng thøc Update cña ®èi t­îng Recordset. I. 9. T¹o Recordset ng¾t kÕt nèi Khi dïng th­ viÖn con trá phÝa Client cña ADO, ta cã kh¶ n¨ng ng¾t kÕt nèi víi Server vµ tiÕp tôc lµm viÖc víi d÷ liÖu. C¸ch nµy lµm cho d÷ liÖu trë nªn linh ho¹t bëi v× nhiÒu ng­êi sö dông, cã thÓ lµm viÖc víi d÷ liÖu nÕu hä kh«ng cÇn kÕt nèi víi Server t¹i mét thêi ®iÓm. §Ó ng¾t kÕt nèi víi Server trong ADO, ta quy ®Þnh thuéc tÝnh Active Connection cña ®èi t­îng Recordset lµ Nothing Client sÏ tiÕp tôc lµm viÖc víi d÷ liÖu thËm chÝ khi nã kh«ng kÕt nèi víi Server. I. 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 Fields khi ta nãi mét ®èi t­îng Recordset cña ADO vµ ta muèn ®äc hay söa ®æi gi¸ trÞ trong tr­êng gi÷ 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. III. Sö dông dÞch vô d÷ liÖu tõ xa cña ADO DÞch vô d÷ liÖu tõ xa (Remote Data Services - RDS) 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 Visual Basic. Ta cã thÓ dïng ®èi t­îng Data Control cña RDO ®Ó 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 tÝnh ch¹y víi Microsof 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. IV. Ng«n ng÷ SQL (Struct query language) SQL lµ gi¶i ph¸p chuÈn ®Ó thao t¸c víi c¬ së d÷ liÖu (CSDL). Nã ®­îc thùc hiÖn theo nhiÒu d¹ng kh¸c nhau trong c¸c hÖ thèng CSDL quan hÖ, bao gåm Microsoft Access vµ SQL Server. Nãi chung, c¸c c©u lÖnh SQL ®­îc chia thµnh 2 lo¹i: C¸c c©u lÖnh thuéc ng«n ng÷ ®Þnh nghÜa d÷ liÖu (DDL): cho phÐp sö dông truy vÊn SQL ®Ó t¹o c¸c thµnh phÇn trong c¬ së d÷ liÖu nh­ lµ b¶ng, tr­êng vµ chØ môc. C¸c c©u lÖnh thuéc ng«n ng÷ tao t¸c d÷ liÖu: ®­îc thiÕt kÕ ®Ó lÊy c¸c mÈu tin tõ c¸c c¬ së d÷ liÖu. C¸c lÖnh lµm viÖc víi cÊu tróc b¶ng 1.1. T¹o b¶ng Có ph¸p: Create table Tªn_b¶ng (Tªn_cét kiÓu_DL [kÝch_th­íc] [Notnull], … Primany key (kho¸_chÝnh) [Unique (kho¸), …] [Foreign key (kho¸_ngoµi) Reference Tªn_b¶ng,…] [Check §iÒu_kiÖn _ rµng _ buéc,…]) Trong ®ã: Tªn b¶ng: lµ x©u ký tù kh«ng trïng tõ kho¸, kh«ng chøa dÊu c¸ch. Tªn cét: lµ x©u ký tù bÊt kú, kh«ng chøa dÊu c¸ch trèng. KiÓu d÷ liÖu: Integer: sè nguyªn tõ – 2147483648 ®Õn 2147483647 Smallinteger: sè nguyªn tõ – 32768 ®Õn 32767 Decimal (n, p): sè thùc dµi tèi ®a n ch÷ sè, p ch÷ sè thËp ph©n Float: sè thùc d¹ng chÊm ®éng Char(n): X©u ký tù ®é dµi cè ®Þnh (n) (n < = 255) Var char(n): x©u ký tù cã ®é dµi thay ®æi tõ 0 ®Õn n Date: kiÓu ngµy th¸ng Boolean: kiÓu logic. VÝ dô: T¹o b¶ng HDTD Create table HDTD( SHDTD char(5) Notnull Makhh char(5) notnull HOTEN char(25) notnull TONGGTTSDB REAL notnull NGAYKIHD Char(10) notnull Primary Key (SHDTD) Foreign Key (MAKH) Reference HSPLCT, Xo¸ b¶ng Có ph¸p: DROP TABLE Tªn_b¶ng Thªm, huû c¸c cét cña b¶ng Có ph¸p: Thªm cét: ALTER TABLE Tªn_b¶ng ADD Tªn_cét KiÓu_d÷_liÖu [kÝch th­íc] [Not null] VÝ dô: Thªm cét DIENTHOAI vµo b¶ng HPLCT ALTER TABLE HSPLCT ADD DIENTHOAI Char(10) Not Null Xo¸ cét: ALTER TABLE Tªn_b¶ng DROP Tªn_cét VÝ dô: Xo¸ cét DIENTHOAI cña b¶ng HSPLCT ALTER TABLE HSPLCT DROP DIENTHOAI C¸c lÖnh lµm viÖc víi d÷ liÖu NhËp d÷ liÖu cho b¶ng Có ph¸p: INSERT INTO Tªn_b¶ng VALUES (Bé_gi¸_trÞ) VÝ dô: Gi¸ trÞ cè ®Þnh INSER INTO LNT (MLNT,LOAINGOAITE) VALUES (‘ 001’, ‘Dola’) Th«ng qua biÕn Insert Into LNT (MLNT,LOAINGOAITE) Values (Trim(txtfields(0).Text), txtfields(1).Text) Xo¸ b¶n ghi trong b¶ng Có ph¸p: DE LETE FROM Tªn_b¶ng [WHERE ®iÒu_kiÖn] VÝ dô: DE LETE FROM LNT WHERE MAHE=’001’. Söa néi dung c¸c b¶n ghi trong b¶ng Có ph¸p: UPDATE TABLE Tªn_b¶ng SET Tªn_cét = BiÓu_thøc,… [WHERE §iÒu_kiÖn] VÝ dô: Söa ®æi néi dung b¶n ghi trong b¶ng MNT(Mua ngo¹i tÖ) UPDATE MNT SET HOTEN = Txtfields(1).Text , DIACHI= Txtfields(3) LOAINGOAITE = Cbotg.Text, WHERE DIACHI = txtfields(2).Text T¹o tÖp chØ sè Có ph¸p: CREATE INDEX TªntÖp_chØ_sè ON Tªn_b¶ng (Tªn cét [ASC/DESC]) Khèi select Có ph¸p: SELECT [DISTINCT] * | DS_cét cÇn lÊy kÕt qu¶| DS_biÓu thøc FROM Danh_s¸ch_c¸c b¶ng [WHERE BiÓu_thøc_®iÒu_kiÖn] [GROUP BY Danh_s¸ch_c¸c_cét] [HAVING BiÓu_thøc_®iÒu_kiÖn] [ORDER BY {Tªn cét/ BiÓu thøc} [ASC/ DESC]] Trong ®ã: Select: Dïng ®Ó x¸c ®Þnh néi dung cña c¸c cét ®­a ra kÕt qu¶ From: §Ó x¸c ®Þnh c¸c b¶ng cÇn lÊy th«ng tin Where: X¸c ®Þnh b¶n ghi tho¶ m·n yªu cÇu ®Ó läc DÊu *: ChØ toµn bé (ALL) c¸c cét cña b¶ng BiÓu thøc: Bao gåm c¸c to¸n tö t¸c ®éng lªn c¸c to¸n h¹ng + C¸c to¸n tö bao gåm: To¸n tö sè häc: *, /, Mod, +, - To¸n tö logic: Not, And, Or C¸c to¸n tö tËp hîp: Union, Intersect, Minus C¸c to¸n tö so s¸nh: =, , >, >=, <, < = C¸c to¸n tö kh¸c: Like, Between, exists + C¸c to¸n h¹ng bao gåm c¸c cét vµ c¸c hµm DISTINCT: ®Ó chØ r»ng kh«ng cã b¶n ghi trïng nhau GROUP BY: Danh_s¸ch_c¸c_cét: nhãm c¸c b¶n ghi theo c¸c cét trong danh s¸ch c¸c cét. HAVING biÓu thøc ®iÒu kiÖn: Dïng cïng víi GROUP BY. Nã kh«ng t¸c ®éng lªn toµn b¶ng mµ chØ t¸c ®éng lÇn l­ît lªn tõng nhãm c¸c b¶n ghi®­îc ph©n ra nhê GROUP BY. ORDER BY { Tªn cét| BiÓu thøc} [ASC/ DESC]: S¾p xÕp c¸c b¶n ghi trong b¶ng kÕt qu¶. VÝ dô: LÊy th«ng tin c¸c kh¸ch hµng tõ b¶ng HSPLCT(hå s¬ ph¸p lý c¸ thÓ) Select * from HSPLCT where TENKH = ‘NguyÔn v¨n A’ ORDER BY MAKH T¹o VIEW cña ng­êi sö dông Có ph¸p: CREATE VIEW Tªn_view (Danh_s¸ch_tªn_cét) AS MÖnh_®Ò: Select Mét sè hµm mÉu SUM (Tªn_cét): TÝnh tæng gi¸ trÞ theo cét cã tªn lµ tªn cét cña c¸c bé MAX (Tªn_cét): Cho gi¸ trÞ lín nhÊt trong cét cã tªn lµ tªn_cét MIN (Tªn_cét): Cho gi¸ trÞ nhá nhÊt trong cét cã tªn lµ tªn_cét AVR (Tªn_cét): TÝnh gi¸ trÞ trung b×nh theo cét cã tªn lµ tªn cét cña c¸c bé COUNT (*/ Tªn cét / DSTINCT Tªn_cét): §Õm sè b¶n ghi trong b¶ng theo tuú chän. - *: §Õm tÊt c¶ c¸c b¶n ghi trong b¶ng - Tªn_cét: §Õm c¸c b¶n ghi mµ gi¸ trÞ cña cét Tªn_cét kh¸c null DISTINCT: §Õm c¸c b¶n ghi mµ gi¸ trÞ tªn cét kh¸c null vµ c¸c b¶n ghi gièng nhau chØ tÝnh mét. V. HÖ qu¶n trÞ CSDL SQL Server NhiÒu nhµ lËp tr×nh Visual Basic th­êng lµm viÖc víi bé m¸y c¬ së d÷ liÖu JET chia sÎ gi÷a Visual Basic vµ Access. Nh­ng khi øng dông cÇn lµm viÖc víi sè l­îng mÉu tin rÊt lín víi nhiÒu ng­êi sö dông, nã gÆp ph¶i nhiÒu h¹n chÕ. Tranh chÊp truy cËp d÷ liÖu gi÷a nhiÒu ng­êi sö dông, xö lÝ chËm ch¹p, thiÕu nh÷ng tÝnh n¨ng n©ng cao vÓ qu¶n lÝ Server vµ d÷ liÖu lµm cho c¸c nhµ lËp tr×nh ph¶i thiÕt kÕ nh÷ng cÊu tróc nÆng nÒ ®Ó gi¶i quyÕt c¸c vÊn ®Ò nµy. Kh«ng nªn lÇm lÉn gi÷a m«i tr­êng Client/Server vµ m«i tr­êng m¸y tÝnh nhiÒu ng­êi sö dông. M«i tr­êng Client/Server chøa trong ch­¬ng tr×nh tù ®éng tr¶ vÒ vµ l­u tr÷ d÷ liÖu, ph©n quyÒn truy cËp gi÷a nhiÒu ng­êi sö dông, xö lý b¶o mËt. Trong khi Microsoft Access chØ hç trî m¸y tÝnh ®a ng­êi sö dông, kh«ng ph¶i lµ m«i tr­êng Client/Server v× nhiÒu yªu cÇu th«ng tin ®Òu ®­îc xö lý trªn m¸y Client c¸ nh©n. Nã kh«ng cã ch­¬ng tr×nh ®iÒu khiÓn nµo tån t¹i qua m¹ng ®Ó xö lý vµ tr¶ vÒ d÷ liÖu. Microsoft SQL Server lµ chän lùa tèt nhÊt v× nã ®i kÌm víi Visual Basic. H¬n n÷a : PhÇn lín c¬ së d÷ liÖu sö dông ng«n ng÷ phæ biÕn nhÊt, ng«n ng÷ truy vÊn theo cÊu tróc - SQL ( Structure Query Language ). Trong Visual Basic ta th­êng xuyªn truy cËp c¬ së d÷ liÖu th«ng qua §èi t­îng d÷ liÖu tõ xa ( Remote Data Object – RDO ), mét ph­¬ng thøc ®éc lËp víi c¬ së d÷ liÖu vµ thi hµnh víi m«i tr­êng Client / Server. 1. Cµi ®Æt Microsoft SQL Server Cµi ®Æt Microsoft SQL Server dÔ h¬n nhiÒu so víi c¸c s¶n phÈm cïng lo¹i: Phiªn b¶n ph¸t triÓn cña Microsoft SQL Server ®i kÌm víi phiªn b¶n Enterprise cña Visual Basic, phiªn b¶n nµy cung cÊp b¶n cµi ®Æt ®Çy ®ñ cña SQL Server, nh­ng giíi h¹n cho 15 client. §Ó t¹o øng dông th­¬ng m¹i dïng SQL, ta cÇn cã b¶n quyÒn cho phÐp nhiÒu client h¬n. Yªu cÇu cµi ®Æt SQL Server §Ó cµi ®Æt SQL Server 2000 Microsoft khuyªn cÇn cã WINDOWS2000 SERVER hoÆc WINXP. Tuy nhiªn, ®©y chØ lµ cÊu h×nh tèi thiÓu mµ th«i. NÕu muèn dïng lµm Server cho hÖ thèng lín ta cÇn n©ng cÊp thªm, nhÊt lµ bé nhí. NÕu kh«ng c¸c nhµ lËp tr×nh sÏ gÆp khã kh¨n khi m¸y chñ kh«ng ®¸p øng kÞp thêi. Cµi ®Æt SQL Server NhÊn ®óp chuét lªn tËp tin Setup. exe trong th­ môc \ i386 trªn æ CD ( NÕu ta ®ang sö dông Intel ). Tr­íc hÕt, ch­¬ng tr×nh cµi ®Æt yªu cÇu ta chØ ra th­ môc cµi SQL Server KÕ ®Õn, nã yªu cÇu ta chØ ra n¬i t¹o tËp tin Master.dat. §©y lµ tËp tin c¬ së d÷ liÖu mµ SQL Server dïng theo dâi toµn bé c¬ së dò liÖu. Ta nªn chän n¬i mµ ng­êi sö dông th«ng th­êng kh«ng thÓ truy cËp ®­îc vµo vµ trªn æ ®Üa lu«n cã ®ñ kho¶ng trèng (25MB lµ kÝch th­íc tèi thiÓu cho c¬ së d÷ liÖu chñ). Sau ®ã, ta cung cÊp trang m· vµ thø tù s¾p xÕp. Trang m· ( Code Page ) lµ b¶ng ch÷ c¸i cho ng­êi øng dông. Chän trang m· t­¬ng thÝch víi ®Þa ph­¬ng cña ng­êi sö dông. VÒ thø tù s¾p xÕp, ta chän mÆc ®Þnh lµ kh«ng ph©n biÖt ch÷ th­êng ch÷ in hoa. SQL Server hç trî mét sè giao thøc m¹ng. Ta nªn chän giao thøc mµ ng­êi sö dông m¹ng ®ang dïng. NÕu kh«ng ch¾c, ta nªn liªn hÖ víi ng­êi qu¶n trÞ m¹ng hoÆc ®èi chiÕu gi¸ trÞ ta chän víi gi¸ trÞ ®Þnh s½n trong cöa sæ Network cña Control panel. KÕ tiÕp ta x¸c ®Þnh SQL Server cã khëi ®éng ngay lóc khëi ®éng WinNT hay kh«ng. NÕu chän, SQL Server sÏ ho¹t ®éng nh­ mét dÞch vô cña hÖ ®iÒu hµnh, nã kh«ng xuÊt hiÖn trong Task Manager vµ ta kh«ng thÓ kÕt thóc chóng theo c¸ch mét øng dông th«ng th­êng. 1.3. KiÓm so¸t c¸ch khëi ®éng SQL Server Sau khi cµi SQL Server, hÖ ®iÒu hµnh tù ®éng phãng SQL Server khi m¸y tÝnh ®­îc khëi ®éng. Th«ng qua b¶ng ®iÒu khiÓn Services ta cã thÓ kiÓm so¸t SQL Server cã lu«n khëi ®éng khi m¸y tÝnh khëi ®éng hay kh«ng. Thi hµnh Microsoft SQL Server Sau khi cµi ®Æt xong ta ph¶i hoµn tÊt mét sè viÖc tr­íc khi SQL Server b¾t ®Çu l­u tr÷ d÷ liÖu : T¹o mét hay nhiÒu thiÕt bÞ ®Üa. T¹o mét hay nhiÒu c¬ së d÷ liÖu trªn mét thiÕt bÞ ®Üa ®Æc biÖt. T¹o b¶ng trong c¬ së d÷ liÖu. T¹o ra c¸c tµi kho¶n ng­êi sö dông vµ nhãm b¶o mËt. HÇu hÕt c¸c c«ng viÖc nµy ®Òu thi hµnh víi SQL Enterprise Manager, kh«ng cÇn ph¶i lËp tr×nh. 2.1. Thi hµnh SQL Enterprise Manager SQL Enterprise Manager lµ mét trong nh÷ng phÇn t¨ng c­êng quan träng nhÊt cña SQL Server 6.5. Nã gióp c«ng viÖc qu¶n trÞ c¬ së d÷ liÖu trë nªn dÔ dµng h¬n nhê giao diÖn ®å ho¹ thay v× ph¶i dïng dßng lÖnh nh­ tr­íc ( c¸ch nµy còng vÉn tån t¹i ). Phãng SQL Enterprise Manager tõ biÓu t­îng nhãm SQL Server . Khi ®ã, ta cã thÓ truy cËp c¬ së d÷ liÖu trªn m¹ng. 2.2. Dïng SQL Enterprise Manager ®Ó t¹o thiÕt bÞ c¬ së d÷ liÖu míi Tr­íc khi t¹o c¬ së d÷ liÖu, ta ph¶i t¹o thiÕt bÞ c¬ së d÷ liÖu. §©y lµ n¬i l­u tr÷ cña c¬ së d÷ liÖu trong kh«ng gian SQL Server. Mçi thiÕt bÞ c¬ së d÷ liÖu cã thÓ chøa nhiÒu c¬ së d÷ liÖu. Mét thiÕt bÞ c¬ së d÷ liÖu cã thÓ tr¶i qua nhiÒu ®Üa cøng vËt lý. Nhê ®ã, ta cã thuËn lîi lµ kh«ng gian chøa lín, cã thÓ lªn ®Õn Gigabyte, vµ nÕu cã mét ®Üa h­, ta vÉn cã thÓ truy cËp ®­îc c¬ së d÷ liÖu chøa trong c¸c ®Üa kh¸c. Chän SQL Enterprise Manager tõ nhãm SQL Server LÇn ®Çu thi hµnh SQL Enterprise Manager, ta ph¶i ®¨ng ký viÖc cµi ®Æt SQL Server. Nã gióp SQL Enterprise Manager x¸c ®Þnh SQL Server nµo ta muèn lµm viÖc, nã còng cho phÐp qu¶n lý nhiÒu SQL Server. Sau khi ®¨ng ký xong, nhÊn nót Close trong hép tho¹i Register Server ( Ta chØ thùc hiÖn ®iÒu nµy mét lÇn. Sau khi lµm xong, SQL Enterprise Manager sÏ nhí c¸ch thøc nèi víi Server ). 2.2.1. T¹o thiÕt bÞ c¬ së d÷ liÖu Trong cöa sæ Server Manager cña SQL Enterprise Manager, më th­ môc Database Devices bªn d­íi SQL Server. Ta thÊy cã mét sè thiÕt bÞ mÆc ®Þnh ( nh­ lµ Master vµ Temp_data ) ®­îc cung cÊp bëi ch­¬ng tr×nh cµi ®Æt. NhÊn nót ph¶i chuét trªn th­ môc Database Devices, tõ menu bËt ra, chän New Device. Hép tho¹i New Database Device më ra. T¹o thiÕt bÞ c¬ së d÷ liÖu míi tõ hép tho¹i New Database Device. Trong « Name, nhËp hä tªn cho thiÕt bÞ míi. Tõ hép kÕt hîp Location, chän æ ®Üa chøa thiÕt bÞ c¬ së d÷ liÖu. §å thÞ bªn d­íi cho thÊy æ ®Üa nµo ®ang cã s½n vµ kho¶ng trèng ®Üa hiÖn hµnh. Trong hép v¨n b¶n Size, chän kÝch cì cho thiÕt bÞ( tÝnh theo Megabyte ). §iÒu khiÓn nót tr­ît bªn ph¶i « Size cho thÊy tØ lÖ gi÷a kÝch cì cña thiÕt bÞ víi tæng sè kho¶ng trèng ®Üa. Nã còng cho phÐp ta ®iÒu chØnh kÝch cì b»ng ®å häa. NhÊn chän Create Now ®Ó t¹o thiÕt bÞ. SQL Enterprise Manager hiÓn thÞ th«ng b¸o r»ng thiÕt bÞ võa ®­îc t¹o xong. NÕu ®ãng hép tho¹i, ta sÏ thÊy thiÕt bÞ xuÊt hiÖn trong th­ môc Database Device cña cöa sæ Server Manager. 2.2.2 T¹o thiÕt bÞ ®Þnh kú Trong hép tho¹i New Database Device, chØ ®Þnh thuéc tÝnh cña thiÕt bÞ, nhÊn nót Schedule. Hép tho¹i Schedule Database xuÊt hiÖn. Ên nót One Time. Trong hép v¨n b¶n, chØ ra ngµy giê ta muèn SQL Server t¹o thiÕt bÞ, nhÊn OK. 2.3. ChØ ®Þnh thiÕt bÞ mÆc ®Þnh ThiÕt bÞ mÆc ®Þnh khi cµi ®Æt lµ master, dïng cho môc ®Ých qu¶n lÝ. NÕu kh«ng thay ®æi, c¬ së d÷ liÖu sÏ ®­îc t¹o nªn trªn thiÕt bÞ master. Khi míi t¹o thiÕt bÞ, ta cã thÓ quy ®Þnh thiÕt bÞ mÆc ®Þnh b»ng c¸ch chän vµ hép ®¸nh dÊu Default Devices trong hép tho¹i New Database Device. Hay lµ, ®Ó chuyÓn mét thiÕt bÞ hiÖn hµnh thµnh mÆc ®Þnh: NhÊn ®óp lªn thiÕt bÞ trong cöa sæ Server Manager. Hép tho¹i Edit Database Device xuÊt hiÖn. Chän vµo hép ®¸nh dÊu Default Device, råi nhÊn vµo Change now. ThiÕt bÞ ®­îc chuyÓn thµnh mÆc ®Þnh. 2.4. Dïng SQL Enterprise Manager ®Ó t¹o c¬ së d÷ liÖu NhÊn nót ph¶i chuét trªn th­ môc Database trong cöa sæ Server Manager cña SQL Enterprise Manager. Chän New Database tõ menu bËt ra. Hép tho¹i New Database xuÊt hiÖn. NhËp tªn c¬ së d÷ liÖu trong « Name. Trong hép tho¹i Size, nhËp kÝch cì c¬ së d÷ liÖu tÝnh theo Megabyte. C¬ së d÷ liÖu cã thÓ chiÕm toµn bé thiÕt bÞ mµ nã ®ang ®­îc chøa, nh­ng kh«ng thÓ lín h¬n. Cã thÓ ®iÒu chØnh l¹i kÝnh cì c¬ së d÷ liÖu vÒ sau nh­ng tèt nhÊt lµ nªn dµnh s½n kho¶ng trèng tèi ®a cho c¬ së d÷ liÖu, v× vËy viÖc ®iÒu chØnh vÒ sau h¬i bÊt tiÖn. NhÊn Create Now. C¬ së d÷ liÖu míi ®­îc t¹o vµ hép tho¹i New Database ®ãng. Ta sÏ thÊy c¬ së d÷ liÖu míi xuÊt hiÖn trong th­ môc Database cña cöa sæ Server Manager. 2.5. T¹o b¶ng trong c¬ së d÷ liÖu Cã 2 c¸ch t¹o b¶ng : 1. Dïng SQL DDL( Ng«n ng÷ ®Þnh nghÜa d÷ liÖu – Database Define Language), Kü thuËt nµy dïng víi c¬ së d÷ liÖu Jet. 2. Dïng tÝnh n¨ng ®å ho¹ cña SQL Enterprise Manager. C¶ hai c¸ch nµy cã nh÷ng ­u vµ nh­îc ®iÓm. SQL DDL rÊt phøc t¹p nhÊt lµ nÕu ta ch­a quen víi SQL. Sö dông SQL dïng ch­¬ng tr×nh ®Ó t¹o c¬ së d÷ liÖu. Sö dông SQL Enterprise Manager, tr¸i l¹i, cho phÐp t¹o cÊu tróc c¬ së d÷ liÖu dÔ dµng vµ nhanh chãng th«ng qua thÕ m¹nh trùc quan ®å ho¹. Sö dông SQL Enterprise Manager ®Ó t¹o b¶ng trong SQL Server Sau khi t¹o mét c¬ së d÷ liÖu trong SQL Server ta cã thÓ dïng SQL Enterprise Manager ®Ó t¹o b¶ng trong c¬ së d÷ liÖu: Trong cöa sæ Server Manager cña SQL Enterprise Manager, chän vµ më réng c¬ së d÷ liÖu mµ ta muèn t¹o b¶ng. Hai th­ môc xuÊt hiÖn bªn d­íi th­ môc c¬ së d÷ liÖu lµ: Groups/ Users vµ Objects. NhÊn nót ph¶i chuét lªn th­ môc Objects. Tõ menu bËt ra, chän New Table. Hép tho¹i Manager Talbes xuÊt hiÖn . NhËp tªn tr­êng vµo cét cã tªn lµ Column Name. NhÊn Tab ®Ó chuyÓn sang cét kÕ, Datatype ®Ó chän kiÓu d÷ liÖu. Trong cét Size ta nhËp kÝch th­íc d÷ liÖu. Cét Null x¸c ®Þnh tr­êng cã cho phÐp gi¸ trÞ Null hay kh«ng. NÕu hép ®­îc ®¸nh dÊu th× cã thÓ nhËp gi¸ trÞ Null vµo tr­êng. NhËp vµo ®Þnh nghÜa vµ kiÓu d÷ liÖu cña c¸c tr­êng kh¸c vµo l­íi cïng lóc. Khi ®· hoµn tÊt thiÕt kÕ b¶ng, nhÊn nót Save ë phÇn trªn trong hép tho¹i. Hép tho¹i Specisy Table Name xuÊt hiÖn. NhËp tªn b¶ng vµ nhÊn OK. B¶ng míi ®­îc t¹o vµ xuÊt hiÖn trong cöa sæ Server Manager. 2.6. T¹o cét ®Þnh danh ®Ó x¸c ®Þnh duy nhÊt c¸c mÈu tin Tõng mÉu tin cã mét th«ng tin duy nhÊt x¸c ®Þnh mÉu tin ®ã. Cét ®Þnh danh ph¶i ®­îc t¹o vµo lóc t¹o b¶ng, bëi v× SQL Server yªu cÇu tr­êng bÊt kú ®­îc t¹o sau nµy ph¶i cho phÐp gi¸ trÞ Null, tr­êng kh¸c Null chØ cã thÓ ®­îc t¹o vµo lóc t¹o b¶ng. §Ó t¹o mét cét ®Þnh danh sö dông SQL Enterprise Manager ta theo c¸c b­íc sau: Trong hép tho¹i Manager Tables, t¹o mét tr­êng míi gäi lµ ID. KiÓu d÷ liÖu lµ int. §©y lµ kiÓu 4 byte, t­¬ng tù kiÓu d÷ liÖu cña Visual Basic, v× vËy gi¸ trÞ int trong SQL Server t­¬ng ®­¬ng long integer. Bá dÊu chän trong hép Null. §¶m b¶o r»ng gi¸ trÞ Null kh«ng ®­îc chÌn vµo cét nµy, cét nµy trë thµnh cét ®Þnh danh. NhÊn nót Advanced Features trong hép tho¹i, nã më réng thªm hép tho¹i. Trong hép kÕt hîp Identity Column, chän tªn tr­êng lµm cét ®Þnh danh. Ta cã mét tuú chän ®Ó cã thÓ quy ®Þnh gi¸ trÞ trong hép Seed Value vµ Increment. C¸c hép nµy qu¶n lÝ n¬i b¾t ®¸nh sè tù ®éng vµ b­íc t¨ng cho mçi mÉu tin. 2.7. Dïng c¸c ph­¬ng thøc kh¸c ®Ó ph¸t sinh kho¸ chÝnh Kho¸ chÝnh rÊt cÇn thiÕt khi kÕt nèi nhiÒu b¶ng ®Ó truy vÊn. Kho¸ chÝnh cßn dïng ®¹i diÖn cho mÉu tin trong nh÷ng xö lý trªn giao diÖn ng­êi sö dông. Thay v× truyÒn toµn bé mÉu tin, ta chØ cÇn truyÒn khãa chÝnh, nghÜa lµ l­îng d÷ liÖu rÊt nhá. Cã nhiÒu c¸ch ®Ó ph¸t sinh kho¸ chÝnh: Ph¸t sinh mét gi¸ trÞ hoµn toµn ngÉu nhiªn trong tr­êng khãa chÝnh cho tõng mÉu tin ®­îc t¹o. Kü thuËt nµy dïng cho nh÷ng b¶ng chøa tr­êng AutoNumber ®· ®­îc chuyÓn ®æi tõ Access sang SQL Server. Nã còng lµ kü thuËt ®­îc dïng bëi b¶n sao cña c¬ së d÷ liÖu Access ®Ó tr¸nh m©u thuÉn gi÷a c¸c mÉu tin nhËp vµo bëi nh÷ng ng­êi sö dông ë xa kh«ng cã liªn l¹c víi nhau. Chøa mét gi¸ trÞ ®Õm trong b¶ng t¹m vµ dïng gi¸ trÞ ®ã ®Ó khëi ®Çu mét cét kho¸ chÝnh cña tõng mÉu tin míi khi mÉu tin nµy ®­îc t¹o. §iÒu nµy liªn quan ®Õn mét transaction ®äc gi¸ trÞ hiÖn hµnh cña b¶ng ®Õm, dïng nã ®Ó sinh kho¸ chÝnh cña mÉu tin míi, råi t¨ng gi¸ trÞ trong b¶ng ®Õm. Kü thuËt nµy cã ­u ®iÓm lµ cung cÊp mét hÖ thèng sè hoµn toµn kiÓm so¸t ®­îc. BÊt lîi cña kü thuËt nµy lµ ta ph¶i cã mét thñ tôc chøa s¼n vµ thªm b¶ng vµo c¬ së d÷ liÖu ®Ó cµi ®Æt nã. Thªm mét kho¸ tõ gîi ý cña d÷ liÖu. VÝ dô, mét kho¸ cho mét mÉu tin cña mét ng­êi cã tªn lµ Vito Polito, co thÓ lµ VP001. NÕu mét ng­êi kh¸c còng cã tªn t­¬ng tù VP, hÖ thèng sÏ cho mÉu tin víi kho¸ chÝnh lµ VP002. Tuy nhiªn, c¸ch nµy cÇn lÇp tr×nh( bao gåm c¸c thñ tôc chøa s½n ®Ó thi hµnh c¸c trigger ). 2.8. T¹o cét lµm kho¸ chÝnh Khi t¹o cét ®Þnh danh, ta hÇu nh­ ch¾c ch¾n sÏ lÊy cét ®ã lµm kho¸ chÝnh. Ta cã thÓ thùc hiÖn ®iÒu nµy th«ng qua SQL EnterPrise Manager. §Ó chØ ra mét cét lµm kho¸ chÝnh: Më phÇn Advanced Features trong hép tho¹i Manage Tables b»ng c¸ch nhÊn nót “ Advanced Feature ”. Trong b¶ng Primary Key cña Tab Primary/Identity, chän tªn cña cét ta muèn dïng lµm kho¸ chÝnh cña b¶ng. NhÊn Add. ChØ môc cña khãa chÝnh ®­îc thªm vµo ®Þnh nghÜa b¶ng. Trong b¶ng chØ cã mét khãa chÝnh vµ ®­îc t¹o vµo lóc taä b¶ng. NÕu kh«ng, ta ph¶i huû b¶ng vµ t¹o l¹i. Còng l­u ý r»ng mçi tr­êng hîp bÊt kú ®Òu cã thÓ lµm khãa chÝnh, kh«ng nhÊt thiÕt chØ cã tr­êng ®Þnh danh. 2.9. Qu¶n lý ng­êi sö dông vµ b¶o mËt víi SQL Enterprise Manager Mét trong nh÷ng lý do quan träng ®Ó sö dông SQL Server lµ kh¶ n¨ng qu¶n lý nhiÒu ng­êi sö dông truy cËp ®Õn cïng d÷ liÖu t¹i mét thêi ®iÓm. MÆc dï cã nhiÒu r¾c rèi nh­ lµ quyÒn ­u tiªn truy cËp cña ng­êi sö dông, hai ng­êi cè cËp nhËt cïng mÉu tin t¹i cïng thêi ®iÓm, SQL Server ®­a ra gi¶i ph¸p cho phÇn lín nh÷ng vÊn ®Ò nµy. Th«ng qua nh÷ng tÝnh n¨ng b¶o mËt, SQL Server cho phÐp x¸c ®Þnh ng­êi sö dông nµo ®ang truy cËp d÷ liÖu. Mçi c¬ së d÷ liÖu cã mét tËp hîp ng­êi sö dông riªng, tõng ng­êi cã quyÒn h¹n riªng ®Ó truy cËp d÷ liÖu. C¸c quyÒn h¹n nµy cho phÐp ng­êi sö dông ®­îc truy cËp hoÆc thay ®æi d÷ liÖu vµ nÕu cã thÓ, t¹o hay huû ®èi t­îng c¬ së d÷ liÖu. B¶o mËt cña SQL Server cßn cho phÐp ®Æt ng­êi sö dông vµo mét nhãm cã cïng quyÒn h¹n. VÝ dô, nhãm c¸c nhµ lËp tr×nh ®­îc phÐp truy cËp toµn bé ®èi t­îng trong c¬ së d÷ liÖu, nhãm c¸c nhµ qu¶n lý ®­îc phÐp truy cËp th«ng tin vÒ l­¬ng bæng hay bu«n b¸n, vµ mét nhãm ng­êi sö dông th«ng th­êng víi c¸c quyÒn rÊt h¹n chÕ. 2.9.1 Qu¶n lý nhãm ng­êi sö dông víi SQL Enterprise Manager Ta cã thÓ t¹o nhãm trong SQL Enterprise Manager, råi g¸n quyÒn cho nhãm võa t¹o. Sau khi t¹o nhãm, ta cã kh¶ n¨ng thªm ng­êi sö dông vµo nhãm, ng­êi sö dông bÊt kú ®­îc thªm vµo nhãm sÏ cã c¸c quyÒn h¹n cña nhãm. Vµ thay ®æi quyÒn h¹n cña nhãm còng sÏ thay ®æi lu«n quyÒn h¹n cña tÊt c¶ nh÷ng ng­êi sö dông trong nhãm ®ã. B»ng c¸ch nµy, ®Ó thªm hoÆc xãa mét sè lín c¸c quyÒn h¹n cho mét ng­êi sö dông nµo ®ã, ta chØ cÇn thay ®æi nhãm chøa ng­êi sö dông ®ã. a) T¹o nhãm §Ó t¹o mét nhãm trong SQL Enterprise Manager, ta theo c¸c b­íc sau: Trong cöa sæ Server Manager cña SQL Enterprise Manager, nhÊn nót ph¶i chuét lªn th­ môc Groups/Users. Tõ menu bËt ra, chän New Group. Hép tho¹i Manager Groups xuÊt hiÖn. Trong hép Group, nhËp tªn cña nhãm. §©y lµ nhãm ng­êi sö dông th«ng th­êng gi¶ ®Þnh cã tªn lµ ‘ Users ’, nhÊn Add. Nhãm míi ®­îc thªm vµo c¬ së d÷ liÖu. §ãng hép tho¹i Manager Groups b»ng c¸ch nhÊn nót Close. Trong cöa sæ Server Manager, ta sÏ thÊy nhãm míi. b) CÊp vµ cÊm quyÒn Sau khi ®· t¹o mét nhãm, ta cã thÓ cÊm quyÒn truy cËp trªn ®èi t­îng b¶ng b»ng c¸c b­íc sau: Trong cöa sæ Server Manager, nhÊn nót ph¶i chuét lªn nhãm ta muèn cÊp quyÒn. Tõ menu bËt ra, chän Permissions. Hép tho¹i Object Permission xuÊt hiÖn. Trong phÇn tr­íc ta ®· nãi vÒ View vµ thñ tôc chøa s½n, trong ®ã ta kh«ng cho phÐp ng­êi sö dông truy cËp trùc trªn b¶ng. Ta sÏ dïng hép tho¹i Object Permissions ®Ó cÊm tÊt c¶ c¸c quyÒn trªn ®èi t­îng b¶ng trong c¬ së d÷ liÖu ®èi víi c¸c thµnh viªn cña nhãm Users. §Ó thùc hiÖn ®iÒu nµy, ta theo c¸c b­íc sau: Cuén danh s¸ch ®èi t­îng trong c¬ së d÷ liÖu ®Õn khi gÆp ®èi t­îng b¶ng. NhÊn chuét 2 lÇn trªn mçi cét( Select, Insert, Update, vµ Delete ) cho mçi ®èi t­îng b¶mg trong c¬ së d÷ liÖu. NhÊn lÇn mét ®Ó cÊp quyÒn, nhÊn lÇn 2 ®Ó cÊm quyÒn( MÆc dï quyÒn hiÖn t¹i lµ “ Pending ”, nã ch­a ®­îc cÊm cho ®Õn khi nhÊn nót Set ). CÊp quyÒn Select, Insert, Update vµ Delete trªn toµn bé View cña c¬ së d÷ liÖu. CÊp quyÒn thi hµnh trªn thñ tôc chøa s½n trong c¬ së d÷ liÖu. NhÊn nót Set ®Ó thi hµnh c¸c thay ®æi quyÒn h¹n. C¸c thay ®æi quyÒn h¹n ®­îc thi hµnh. NhÊn nót Close ®Ó ®ãng hép tho¹i. Tuy nhiªn, ta ph¶i cã s½n ng­êi sö dông trong nhãm ‘ Users ’, th× nh÷ng quyÒn h¹n nµy míi cã ý nghÜa. 2.9.2. T¹o vµ qu¶n lÝ login vµ ng­êi sö dông §Ó cã mét hÖ thèng b¶o mËt nhÊt qu¸n vµ linh ho¹t, ta cÇn cho mçi ng­êi sö dông mét ID. Login thÓ hiÖn mét ng­êi sö dông cã quyÒn truy cËp ®Õn SQL Server Ta dïng login ®Ó t¹o ng­êi sö dông. T¹o mét ng­êi sö dông cho phÐp cÊp quyÒn Login vµo mét c¬ së d÷ liÖu nhÊt ®Þnh. Cã thÓ thªm ng­êi sö dông vµo mét nhãm, ®Ó cho hä mét lo¹t c¸c quyÒn h¹n cïng lóc. Login ®­îc t¹o ë møc Server , ng­êi sö dông ®­îc t¹o ë møc c¬ së d÷ liÖu. T¹o mét ng­êi sö dông, t¹o mét login cho tõng ng­êi: 1. Trong SQL Enterprise Manager, nhÊn nót ph¶i chuét lªn th­ môc Logins ë d­íi cïng cöa sæ Server Manager. Login kh«ng thuéc vÒ c¬ së d÷ liÖu, nã thuéc vÒ Server. 2. Chän New Login tõ menu bËt ra. Hép tho¹i Manager Logins xuÊt hiÖn. Trong hép tho¹i Login Name, nhËp tªn ng­êi sÏ dïng ®Ó login. Mét kh¶ n¨ng tuú chän lµ cã thÓ thªm mËt khÈu vµ chän ng«n ng÷ mÆc ®Þnh. ( Cã thÓ ®æi mËt khÈu th«ng qua thñ tôc chøa s½n sp_pasword.) Ta cã thÓ Login nµy nh­ mét ng­êi sö dông vµo mét c¬ së d÷ liÖu nhÊt ®Þnh ngay lóc nµy. NhÊn vµo cét Permit cña l­íi Database Access ë d­íi cïng hép tho¹i. Ng­êi sö dông ®­îc cÊp quyÒn truy cËp c¬ së d÷ liÖu trong nhãm public. §Ó thªm ng­êi sö dông vµo mét nhãm kh¸c h¬n public, chän tõ danh s¸ch Drop – Down trong cét Group. NhÊn Add khi ta hoµn tÊt viÖc g¸n Login nµy cho ng­êi sö dông trong c¬ së d÷ liÖu. Login ®­îc t¹o ra, vµ ng­êi sö dông ta t¹o bÊt kú cho Login còng ®­îc thªm vµo c¬ së d÷ liÖu t­¬ng øng. ViÖc nµy thÓ hiÖn ngay lËp tøc trong cöa sæ Server SQL Enterprise Manager. 2.9.3. X¸c ®Þnh ng­êi ®ang Login Dïng thñ tôc chøa s½n Sp-who, ISQL/w tr¶ vÒ danh s¸ch nh÷ng ng­êi ®ang truy cËp Server. 2.10. KÕt thóc mét qóa tr×nh b»ng lÖnh Kill Ng­êi qu¶n trÞ SQL Server cã thÓ dïng lÖnh Kill ®Ó chÊm døt mét qóa tr×nh ch¼ng h¹n nh­ Session cña ng­êi sö dông hay khãa ( Lock ) c¬ së d÷ liÖu. Tr­íc hÕt thi hµnh lÖnh Sp-who ( ®Ó lÊy Session cña ng­êi sö dông ) hay Sp-lock ( khãa c¬ së d÷ liÖu ). C¶ hai thñ tôc nµy tr¶ vÒ mét cét gäi lµ Spid, lµ ID cña thñ tôc cña qu¸ tr×nh. Sau khi n¾m ®­îc Spid, ta cã thÓ chÊm døt qu¸ tr×nh b»ng lÖnh Kill. Gi¶ sö Spid lµ 10, ta cã dßng lÖnh sau trong ISQL/w: Kill 10. 2.11. Huû ®èi t­îng trong c¬ së d÷ liÖu Kh¸i niÖn cña SQL Server dïng cho huû mét ®èi t­îng trong c¬ së d÷ liÖu lµ drop ®èi t­îng. Khi mét ®èi t­îng bÞ huû, nã bÞ huû vÜnh viÔn. §èi víi b¶ng chøa d÷ liÖu, cÊu tróc vµ d÷ liÖu cña nã bÞ huû vÜnh viÔn. §Ó huû mét ®èi t­îng c¬ së d÷ liÖu, b¶ng ch¼ng h¹n, ta dßng lÖnh sau trong ISQL/w: drop table tb. Ch­¬ng IV ThiÕt kÕ giao diÖn vµ thiÕt kÕ Modul ch­¬ng tr×nh. I. ThiÕt kÕ mo dul ch­¬ng tr×nh. Trong Modul ch­¬ng tr×nh viÕt mét sè hµm vµ thñ tôc dïng cho ch­¬ng tr×nh. Sau ®ay lµ mét sè hµm , thñ tôc… *. Hµm kªt nèi SQL Server. Public Function OpenDB_Server (gConn As ADODB.Connection, sServer As String, sDataName As String, sUser As String, sPass As String) As Boolean OpenDB_Server = True On Error GoTo Thoat sConnect = "Provider=SQLOLEDB.1;Data Source=" & sServer & ";" & "Initial Catalog=" & sDataName & ";" & "User ID=" & sUser & ";" & "Password=" & sPass & ";" Set gConn = New ADODB.Connection gConn.ConnectionString = sConnect gConn.ConnectionTimeout = 50 ' Stop the process if failed to connect in 10 second gConn.CursorLocation = adUseClient ' The cursor can be client side or server side gConn.Open Exit Function Thoat: MsgBox Err.Description, vbExclamation, "C¶nh b¸o..." OpenDB_Server = False End Function * . Thñ tôc t¹o c¬ së d÷ liÖu tù ®éng. Public Sub CreateDataBase(cConn As ADODB.Connection) Dim T1 As String, T2 As String, Text As String T1 = App.Path + "\QLTD.MDF" T2 = App.Path + "\QLTD.lDF" If TestFile(T1) Then Text = "EXEC sp_attach_db @dbName='QLTD'," & _ " @Filename1=N'" & T1 + "'," & _ " @Filename2=N'" & T2 + "'" Else Text = "create database QLTD on (name=N'QLTD1',FileName=N'" & T1 + "',FileGrowth=10%,Size=1)" & _ "Log on(name=N'QLTD2',FileName=N'" & T2 + "',FileGrowth=10%,Size=1)" End If cConn.Execute Text End Sub *. Hµm kiÓm tra ®Ó t¹o b¶ng tù ®éng. Public Function ExistTable(TableName As String) As Boolean Dim rsKIEMTRA As ADODB.Recordset Dim sSql As String sSql = "SELECT NAME FROM SYSOBJECTS WHERE NAME ='" & TableName & "'" Set rsKIEMTRA = New ADODB.Recordset rsKIEMTRA.Open sSql, MyConn, adOpenDynamic, adLockReadOnly If rsKIEMTRA.RecordCount = 0 Then ExistTable = False Else ExistTable = True End If End Function. VÝ dô : T¹o b¶ng HSPLSinhviªn If Not ExistTable("HSSINHVIEN") Then sSql = "CREATE TABLE HSSINHVIEN (MKH Char(10) PRIMARY KEY," & _ "HOTEN Char(25)," & _ "NGAYSINH Char(10)," & _ "DIENTHOAI Char(10)," & _ "HKTHUONGTRU Char(70), " & _ "SOCMND Char(10)," & _ "NOIOHN Char(30)," & _ "HCKT Char(100)," & _ "TENTRUONG Char(30)," & _ "KHOAHOC Char(20)," & _ "LOP Char(10)," & _ "KHOA Char(20)," & _ "DTBNAMHOC real ," & _ "MAHSSV Char(20)," & _ "TGKH CHAR(20)," & _ "HTNGUOIDODAU Char(20)," & _ "HK Char(50)," & _ "SOCMTNDD Char(10)," & _ "NOHIENNAY Char(50) )" Myconn.Execute sSql End If II. ThiÕt kÕ giao diÖn. Trªn c¬ së biÓu ®å ph©n cÊp chøc n¨ng vµ thùc tÕ yªu cÇu cña øng dông, ch­¬ng tr×nh chÝnh ®­îc thiÕt kÕ vµ cµi ®Æt d­íi d¹ng h×nh ®¬n(d¹ng møc)®Ó ng­êi sö dông thuËn tiÖn trong viÖc lùa chän c¸c chøc n¨ng cÇn lµm cña hÖ thèng. Form Login. . Giao diÖn hÖ thèng Menu ch­¬ng tr×nh d­îc thiÕt kÕ nh­ sau: C¸c chøc n¨ng. Giao diÖn cËp nhËt th«ng tin kh¸ch hµng lµ c¸ thÓ . Giao diÖn cËp nhËt hå s¬ ph¸p lý ph¸p lý doanh nghiÖp. Giao diÖn cËp nhËt hå s¬ ph¸p lý cho sinh viªn. Giao diÖn sæ vay vèn Giao diÖn cËp nhËt tr­êng ®¹i häc vay vèn Giao diÖn kh¸ch hµng mua ngo¹i tÖ. Giao diÖn hîp ®ång tÝn dông. Giao diÖn hîp ®ång cho vay vèn. Giao diÖn giÊy nhËn nî. Giao diÖn t×m kiÕm - T×m kiÕm theo sè chøng minh cña n«ng d©n. - T×m kiÔm theo m· sè HSSV cña sinh viªn. - T×m kiÕm Hîp ®ång. Giao diÖn lÞch tr¶ nî. Giao diÖn thu nî. Trªn ®©y chØ lµ mét sè giao diÖn vÝ dô …. KÕt luËn §©y lµ mét ch­¬ng tr×nh qu¶n lý ®­îc x©y dùng xuÊt ph¸t tõ thùc tÕ cña bµi to¸n qu¶n lý tÝn dông trong ng©n hµng c«ng th­¬ng BÕn Thuû trong ho¹t ®éng qu¶n lý hÖ thèng ng©n hµng. Ch­¬ng tr×nh gióp cho c¸c c¸n bé phßng tÝn dông cã thÓ thùc hiÖn c«ng viÖc qu¶n lý kh¸ch hµng cña m×nh mét c¸ch chÝnh x¸c vµ ®Çy ®ñ h¬n. T«i nhËn thÊy ®Ò tµi ®· ®¹t ®­îc mét sè kÕt qu¶ sau: * Tr×nh bµy mét c¸ch cã hÖ thèng qu¸ tr×nh ph©n tÝch vµ thiÕt kÕ hÖ thèng qu¶n lý tÝn dông. * Hoµn thµnh nghiªn cøu vµ cµi ®Æt mét sè chøc n¨ng trong qu¶n lý tÝn dông ë ng©n hµng c«ng th­¬ng BÕn Thuû b»ng ng«n ng÷ lËp tr×nh Visual Basic. * H­íng nghiªn cøu tiÕp theo: Ph¸t triÓn ch­¬ng tr×nh theo qui m« lín h¬n bao gåm c¶ gi¶i ng©n, xö lý rñi ro trong tÝn dông, thanh to¸n b»ng tµi kho¶n, hå s¬ xö lý ë phßng tÝn dông xong chuyÓn kiÓm to¸n cho phßng kÕ to¸n, tøc lµ hå s¬ duyÖt xong ®­îc chuyÓn sang kiÓm so¸t vµ thanh to¸n tiÒn b»ng tµi kho¶n trªn m¹ng toµn cÇu. * Thùc hiÖn hÖ thèng INCAS trong toµn bé hÖ thèng ng©n hµng. Tµi liÖu tham kh¶o [1]. Ng« Trung ViÖt, Ph©n tÝch vµ thiÕt kÕ tin häc hÖ thèng qu¶n lý doanh nghiÖp dÞch vô, Nhµ xuÊt b¶n Giao th«ng vËn t¶i , 1995. [2]. Ph¹m Quang Tr×nh, Gi¸o tr×nh ph©n tÝch thiÕt kÕ hÖ thèng, Khoa c«ng nghÖ th«ng tin tr­êng §¹i häc Vinh. [3]. Hoµng H÷u ViÖt, Bµi gi¶ng Visual Basic 6.0, Khoa c«ng nghÖ th«ng tin tr­êng §¹i häc Vinh. [4]. Ng©n hµng c«ng th­¬ng ViÖt Nam, Tµi liÖu h­íng dÉn sö dông qu¶n lý tÝn dông, XuÊt b¶n n¨m 2002. [5]. TrÇn Thµnh Trai, Ph©n tÝch vµ thiÕt kÕ hÖ th«ng th«ng tin qu¶n lý, NXB TrÎ,(trung t©m KHTN vµ c«ng nghÖ quèc gia). [6]. NguyÔn ThÞ Ngäc Mai, Microsoft Visaul Basic 6.0 vµ lËp tr×nh c¬ së d÷ liÖu, Nhµ xuÊt b¶n gi¸o dôc.

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

  • docluan van.doc
  • pptbao cao.ppt
  • doctom tat.doc