Ứng dụng quản lý
•Hệthống quản lý học sinh: lưu trữthông tin liên
quanđếnhọcsinh
quan đến học sinh
•Hệthống quản lý sinh viên: lưu trữthông tin liên
quanđến sinh viên
quan đến sinh viên
•Hệthống quản lý nhân sự: lưu trữthông tin liên
đế hâ ê ô
quan đến nhân viên trongcôngty
•Hệthống quản lý tiền lương
•Hệthống quản lý kếtoán
• Hệthống quảntrị dựán
63 trang |
Chia sẻ: oanh_nt | Lượt xem: 1431 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình windows: Lập trình cơ sở dữ liệu với thư viện ADO, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học LẬP TRÌNH WINDOWS
Lập trình cơ sở dữ liệu
với thư viện ADO
(ADO – ACTIVEX DATA OBJECT)
• Tổng quan về lập trình CSDL
• Thư viện ADO
• Lập trình CSDL với ADO
Trần Ngọc Bảo - Email: tnbao.dhsp@gmail.com
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học LẬP TRÌNH WINDOWS
Lập trình cơ sở dữ liệu
với thư viện ADO
(ADO – ACTIVEX DATA OBJECT)
• Tổng quan về lập trình CSDL
• Thư viện ADO
• Lập trình CSDL với ADO
S S
Ứng dụng quản lý
N
D
O
W
S
N
D
O
W
S
D
O
D
O
• Hệ thống quản lý học sinh: lưu trữ thông tin liên
quan đến học sinh
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
• Hệ thống quản lý sinh viên: lưu trữ thông tin liên
quan đến sinh viên
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
• Hệ thống quản lý nhân sự: lưu trữ thông tin liên
đế hâ ê ô
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C quan n n n vi n trong c ng ty
• Hệ thống quản lý tiền lương
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
• Hệ thống quản lý kế toán
• Hệ thống quản trị dự án
B
À
I
G
I
B
À
I
G
I
L L
• …..
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (3)3
S S
Ứng dụng Windows (Windows Application)
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (4)4
Thông tin học sinh được lưu trữ như thế nào ?
S S
Ứng dụng Windows (Windows Application)
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (5)5
Thông tin nhân viên được lưu trữ như thế nào ?
S S
Mẫu biểu trong các ứng dụng
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L
Thông tin thể hiện trên báo cáo được lấy từ đâu ?
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (6)6
S S
Mẫu biểu trong các ứng dụng
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L
Thông tin thể hiện trên báo cáo được lấy từ đâu ?
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (7)7
S S
Dữ liệu trong các ứng dụng quản lý
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thông tin học sinh được lưu trữ như thế nào ?
Tất cả thông tin liên quan đến học sinh như: Lý
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
lịch học sinh, điểm thi, chuyên cần, lớp học,
khối…. Được lưu trữ trong CƠ SỞ DỮ LIỆU
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Thông tin nhân viên được lưu trữ như thế nào ?
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Tất cả thông tin liên quan đến nhân viên như: Lý
lịch nhân viên, quá trình công tác, quá trình
l kh h ở kỷ l ậ Đ l ữ
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R ương, en t ư ng, u t…. ược ưu tr
trong CƠ SỞ DỮ LIỆU
B
À
I
G
I
B
À
I
G
I
L L
Thông tin thể hiện trên báo cáo được lấy từ đâu ?
Tất cả thông tin thể hiện trên báo cáo được lấy
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (8)8
từ CƠ SỞ DỮ LIỆU
S S
Tương tác dữ liệu: thêm, xóa,...
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Lấy dữ
liệu
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Thêm dữ
B
À
I
G
I
B
À
I
G
I
L L
liệu
Xó dữ liệ Sử dữ liệ
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (9)9
a u a u
S S
Tương tác dữ liệu: thêm, xóa,...
N
D
O
W
S
N
D
O
W
S
D
O
D
O Thêm dữ liệu
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Cập nhật dữ liệu
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Xóa dữ liệu
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Lấy dữ liệu
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
ấ Ê Ó Ử Ấ
B
À
I
G
I
B
À
I
G
I
L L T t cả các thao tác TH M, X A, S A, TRUY V N
dữ liệu đều liên quan đến ngôn SQL:
INSERT DELETE UPDATE SELECT
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (10)10
, , ,
S S
Lệnh INSERT (tt)
ể
N
D
O
W
S
N
D
O
W
S
D
O
D
O
• Dùng đ thêm 1 hay nhiều dòng vào
Table trong CSDL
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
• Cú pháp (thêm 1 dòng)
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
INSERT INTO ()
VALUES ()
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
– Thêm mới một nhân viên có họ = ‘Le’, tên lót = ‘Van’, tên =
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV)
‘Tuyen’ với mã số = ‘NV001’ vào Table NhanVien
B
À
I
G
I
B
À
I
G
I
L L
VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘NV001’)
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (11)11
S S
Lệnh DELETE
N
D
O
W
S
N
D
O
W
S
D
O
D
O
• Dùng để xóa các dòng của bảng
Cú há
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D • p p
DELETE FROM
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
[WHERE ]
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
O
–Xoá nhân viên có mã số = ‘345345345’ trong Table NhanVien
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R DELETE FR M NHANVIEN
WHERE MANV=‘345345345’
ấ
B
À
I
G
I
B
À
I
G
I
L L
DELETE FROM NHANVIEN
–Xoá t t cả nhân viên có trong Table NhanVien
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (12)12
S S
Lệnh UPDATE
N
D
O
W
S
N
D
O
W
S
D
O
D
O
• Dùng để thay đổi giá trị của thuộc
tính cho các dòng của bảng
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
• Cú pháp
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
UPDATE
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
SET =,
=
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
,
…
B
À
I
G
I
B
À
I
G
I
L L [WHERE ]
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (13)13
S S
Lệnh UPDATE
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Ví dụ
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D – Sửa thuộc tính ngày sinh của nhân viên có mã số = ‘345345345’
trong Table NhanVien là ’08/12/1965’
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
UPDATE NHANVIEN
SET NGSINH=’08/12/1965’
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
WHERE MANV=‘333445555’
– Sửa thuộc tính lương của tất cả nhân viên bằng lương cũ * 1.1
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
UPDATE NHANVIEN
B
À
I
G
I
B
À
I
G
I
L L
SET LUONG=LUONG*1.1
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (14)14
S S
CÚ PHÁP CÂU LỆNH SELECT
N
D
O
W
S
N
D
O
W
S
D
O
D
O
SELECT
FROM
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
WHERE
GROUP BY
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
HAVING
ORDER BY
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Dùng để lấy dữ liệu từ CSDL hiển thị lên màn hình,
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
report,…
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (15)15
S S
Lập trình CSDL trong ứng dụng quản lý
N
D
O
W
S
N
D
O
W
S
D
O
D
O
CT Nhân sự Thành phần giao diện
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Kết nối Giao tiếp dữ liệu
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C CSDL
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
CSDL Thành phần dữ liệu
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (16)16
S S
Lập trình CSDL trong ứng dụng quản lý
N
D
O
W
S
N
D
O
W
S
D
O
D
O
CT Nhân sự
Thành phần giao diện: Visual
Basic, Visual C++, C#, VB.NET,
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Delphi…
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Kết nối
Giao tiếp dữ liệu: ODBC,
DAO ADODB ADO NET
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
CSDL , , . ,..
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
CSDL Thành phần dữ liệu: MS
B
À
I
G
I
B
À
I
G
I
L L
Access, SQL Server, Oracle,…
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (17)17
S S
Một số hệ quản trị CSDL thông dụng
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thành phần dữ liệu: MS Access, SQL Server,
Oracle
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
MS Access 2000/XP/2003
,…
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
MS SQL Server 7.0/2000/2005
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Oracle 8i/9i/10i/11iCSDL
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
My SQL
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (18)18
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học LẬP TRÌNH WINDOWS
Lập trình cơ sở dữ liệu
với thư viện ADO
(ADO – ACTIVEX DATA OBJECT)
• Tổng quan về lập trình CSDL
• Thư viện ADO
• Lập trình CSDL với ADO
S S
Sử dụng thư viện ADO
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Làm thế nào để sử dụng được thư viện ADO để kết nối dữ liệu trong Visual
C++ ?
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D Tạo CMyADO Class :
// Thêm dòng dưới đây vào đầu Class .
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V #import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Tạo InitSQLServer() Function trong CMyADO Class :
BOOL CMyADO::InitSQLServer()
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R {
if(FAILED(CoInitialize(NULL)))
t FALSE
B
À
I
G
I
B
À
I
G
I
L L
re urn ;
return TRUE;
}
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (20)20
S S
Thư viện ADO
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (21)21
S S
Thư viện ADO
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Connection
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Command
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
RecordSet
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Field
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L Parameter
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (22)22
S S
Kết nối Data Source
N
D
O
W
S
N
D
O
W
S
D
O
D
O
MS Access
C ti
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D onnec on
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V Ứng dụng
MS SQL Server
File *.mdb nào ?
VD: QLHS.mdb,
QLNS mdb
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Connection
.
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Ứng dụng S ?
B
À
I
G
I
B
À
I
G
I
L L
- erver
- DatabaseName ?
- User Name ?
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (23)23
- Password ?
S S
Đối tượng Connection
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Ý nghĩa
Đối tượng Connection dùng để mở kết nối với nguồn cơ sở dữ
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D liệu, có thể hiểu đối tượng Connection đóng vai trò là chìa khóa
mở kết nối giữa ứng dụng với cơ sở dữ liệu (Access, SQL
Server, Oracle,…)
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ví dụ:
ể ế ố
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Đ k t n i ứng dụng quản lý học sinh với cơ sở dữ liệu quản lý
học sinh được lưu trữ trong Access chúng ta cần tạo một đối
tượng Connection chỉ đến tập tin Access, ví dụ QLHS.mdb hay
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R C:\C4W\Data\QLHS.mdb
Để kết nối ứng dụng quản lý học sinh với cơ sở dữ liệu quản lý
B
À
I
G
I
B
À
I
G
I
L L học sinh được lưu trữ trong SQL Server chúng ta cần tạo một
đối tượng Connection chỉ đến DB nào ? Server nào ? Với User
và password nào ?
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (24)24
S S
Đối tượng Connection
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Connection object
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Properties Method Event
At ib t B i T B i T C l t
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V r u es eg n rans eg n rans omp e e
CommandTimeOut Cancel CommitTransComplete
ConnectionString Close ConnectComplete
ConnectionTimeOut CommitTrans DisConnect
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
CursorLocation Execute ExecuteComplete
DefaultDatabase Open InfoMessage
Errors Collection OpenShema RollbackTransComplete
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R Isolation Level RollbackTrans WillConnect
Mode WillExecute
Properties collection
P id
B
À
I
G
I
B
À
I
G
I
L L
rov er
State
Version
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (25)25
S S
Đối tượng Connection
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thuộc tính: ConnectionString
Thuộc tính ConnetionString dùng để gán tên tập tin MDB nếu sử
d A h ặ á lậ S N DBN U N
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D ụng ccess o c x c p erver ame, ame, ser ame,
Password nếu kết nối với SQL Server
Ph ơng thức Open
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V ư :
Sau khi xác lập thuộc tính ConnetionString, gọi hàm Open để
mở Connnection
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
.
Thông thường trong một ứng dụng Connection chỉ mở một lần
khi load ứng dụng
ế ể ể
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Phương thức: Close
Æ Bi n Connection thường được khai báo toàn cục đ có th
sử dụng trong toàn bộ ứng dụng
B
À
I
G
I
B
À
I
G
I
L L
Phương thức Close được gọi để đóng Connection. Thông
thường trong một ứng dụng gọi close đối tượng connection khi
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (26)26
kết thúc chương trình
S S
Đối tượng Connection
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Kết nối CSDL SQL Server
//Kh i bá biế ả lý i
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D a o n qu n connect on
_ConnectionPtr m_pConnection;
HRESULT hr;
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V hr = m_pConnection.CreateInstance( __uuidof( Connection ) );
if (SUCCEEDED(hr))
{
hr= m pConnection->Open( bstr t(L"Provider=sqloledb;Data
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
_ _ _
Source=ServerName;InitialCatalog=DatabaseName;"),
_bstr_t(L"UserName"),
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R _bstr_t(L"Password"),
adModeUnknown);
if (SUCCEEDED(hr))
{
B
À
I
G
I
B
À
I
G
I
L L bRes = TRUE;
}
}
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (27)27
S S
Tương tác dữ liệu: thêm, xóa,...
N
D
O
W
S
N
D
O
W
S
D
O
D
O
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Lấy dữ
liệu
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Thê
B
À
I
G
I
B
À
I
G
I
L L m
dữ
liệu
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (28)28
Xóa dữ liệu Sửa dữ liệu
S S
Thực thi câu lệnh Insert/Delete...
N
D
O
W
S
N
D
O
W
S
D
O
D
O Thêm dữ liệu
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Cập nhật dữ liệu
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Xóa dữ liệu
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Lấy dữ liệu
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
B
À
I
G
I
B
À
I
G
I
L L
Thực thi các câu lệnh Insert, Delete, update, Select thông qua
đối tượng Command
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (29)29
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Command Object
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Properties Method
ActiveConnection Cancel
CommandText CreateParameter
CommandTimeOut Execute
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
CommandType
Name
Parameter Collection
P d
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
repare
Properties Collection
State*
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Parameter Colection
Parameter Object
B
À
I
G
I
B
À
I
G
I
L L
Properties Collection
Properties Object
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (30)30
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thuộc tính: ActiveConnection
Thuộc tính ActiveConnetion dùng để gán một đối tượng
C ti đ đ ở
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D onnec on ang ược m
Thuộc tính: CommandText
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Thuộc tính CommandText dùng để xác định câu lệnh SQL “thao
tác” cần thực hiện trong 4 loại thao tác : SELECT, INSERT,
DELETE UPDATE
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
,
Thuộc tính: CommandType
Thuộc tính CommandType dùng để xác định nội dung trong
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
CommandText thuộc loại nào ? CommandText là tên của
Table/Views, Tên Stored procedure hay một câu lệnh SQL ?
B
À
I
G
I
B
À
I
G
I
L L Phương thức: Execute
Phương thức Execute được gọi để thực thi một câu lệnh SQL
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (31)31
được gán cho trong thuộc tính CommandText
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
//Khai báo biến quản lý Command
C dPt C d
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D _ omman r g_p m ;
Kết nối CSDL thông qua Connection
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Cú pháp
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C g_pCmd.CreateInstance(__uuidof(Command));
g_pCmd->ActiveConnection=m_pConnection;
//với m pConnection là 1 connection đang mở
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
_
B
À
I
G
I
B
À
I
G
I
L L
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (32)32
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
//Khai báo biến quản lý Command
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Th thi â lệ h SQL I t/D l t /U d t
_CommandPtr g_pCmd;
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V ực c u n : nser e e e p a e
Cú pháp
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
CString sSQL;
C d >C dT t b t t( SQL)
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R g_p m - omman ex =_ s r_ s ;
g_pCmd->CommandType=adCmdText;
B
À
I
G
I
B
À
I
G
I
L L
_variant_t vRecsAffected(0L);
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (33)33
g_pCmd->Execute(&vRecsAffected,NULL,adOptionUnspecified);
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thực thi câu lệnh SQL: Insert/Delete/Update
Ví dụ: thực thi một câu lệnh SQL Xóa dữ liệu từ Table HocSinh
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
CString sSQL=“Delete From HocSinh”;
C d >C dT t b t t( SQL)
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V g_p m - omman ex =_ s r_ s ;
g_pCmd->CommandType=adCmdText;
_variant_t vRecsAffected(0L);
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C try
{
C d >E t (& R Aff t d NULL dO ti U ifi d)
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
g_p m - xecu e v ecs ec e , ,a p on nspec e ;
}
catch( _com_error &e )
B
À
I
G
I
B
À
I
G
I
L L {
AfxMessageBox("loi");
}
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (34)34
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thực thi câu lệnh SQL: Insert/Delete/Update
Ví dụ: thực thi một câu lệnh SQL Insert dữ liệu vào Table HocSinh
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
CString sSQL="";
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V sSQL = "Insert into HocSinh(MaHS,TenHS) Values(5";
sSQL = sSQL + ",\'TNB\')";
g_pCmd->CommandText=_bstr_t(sSQL);
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C g_pCmd->CommandType=adCmdText;
_variant_t vRecsAffected(0L);
try
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R {
g_pCmd->Execute(&vRecsAffected,NULL,adOptionUnspecified);
}
B
À
I
G
I
B
À
I
G
I
L L catch( _com_error &e )
{
//Xu ly loi
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (35)35
}
S S
Đối tượng Command
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thực thi câu lệnh SELECT
Kết quả câu truy vấn SELECT là một danh sách, ví dụ như danh
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D sách sinh viên, danh sách học sinh, danh sách nhân viên,…
ÆCần có đối tượng lưu trữ kết quả thực thi lệnh SELECT
Æ Đó là đối tượng Recordset
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Cú pháp
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C CString sSQL;
g_pCmd->CommandText=_bstr_t(sSQL);
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
g_pCmd->CommandType=adCmdText;
B
À
I
G
I
B
À
I
G
I
L L _variant_t vRecsAffected(0L);
g_pRS = g_pCmd->Execute(&vRecsAffected,NULL,adOptionUnspecified);
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (36)36
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Recordset Object
Properties Method Events
AbsolutePage AddNew EndOfRecordset
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
AssolutePosition Cancel FetchComplete
ActiveCommand CancelBatch FetchProcess
ActiveConnection CancelUpdate FieldChangeComplete
BOF Clone MoveComplete
Bookmark CompareBookmarks RecordChangeComplete
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V CatcheSize Delete RecordsetChangeComlete
CursorLocation Find WillChangeField
CursorType GetRows WillChangeRecord
DataMember GetString WillChangeRecordset
DataSource Move WillMove
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
EditMode MoveFirst
EOF MoveLast
Fields Collection MoveNext
Filter MovePrevious
L kT N tR d t
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
oc ype ex ecor se
MarshalOptions Open
MaxRecords Requery
PageCount Resync
Pagesize Save
B
À
I
G
I
B
À
I
G
I
L L Properties Collection Supports
RecordCount Update
Sort Updatebatch
State
Status
TRẦN NGỌC BẢO KHOA TOÁN -TIN
Các file đính kèm theo tài liệu này:
- 58.pdf