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 .
92 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2510 | Lượt tải: 2
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 lu ®é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. Nhng 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 nhng 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, nhng 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.
Lu 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).
Lu 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. Nhng 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µ lu 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, nhng 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 lu 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 lu 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, nhng 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 nhng 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 cha 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 lu ý 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ã cha ®î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.