Lập trình Windows - Bài 07
Lập trình cơ sở dữ liệu với thư viện ADO
ã Hệ thống quản lý học sinh: lưu trữ thông tin liên
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
ã Hệ thống quản lý nhân sự: lưu trữ thông tin liên
quan đến nhân viên trong công ty
ã Hệ thống quản lý tiền lương
ã Hệ thống quản lý kế toán
ã Hệ thống dự án
ã
63 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2039 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Lập trình Windows - Bài 07, để 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 HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (37)37
staylnSync
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Recordset Object
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Properties Method Events
AbsolutePage AddNew EndOfRecordset
AssolutePosition Cancel FetchComplete
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V ActiveCommand CancelBatch FetchProcess
ActiveConnection CancelUpdate FieldChangeComplete
BOF Clone MoveComplete
…..
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
Fields Collection
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Fields object
Properties Colection
B
À
I
G
I
B
À
I
G
I
L L
Property Object
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (38)38
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
//Khai báo biến quản lý RecordSet
RecordsetPtr g pRS;
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D _ _
Thực thi câu lệnh SELECT
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
g_pRS.CreateInstance(__uuidof(Recordset));
Cú pháp
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
g_pRS->CursorType = adOpenStatic;
// Use client cursor to enable AbsolutePosition property.
g pRS->CursorLocation = adUseClient;
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
_
CString sSQL;
g_pCmd->CommandText=_bstr_t(sSQL);
B
À
I
G
I
B
À
I
G
I
L L g_pCmd->CommandType=adCmdText;
_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 (39)39
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
//Khai báo biến quản lý RecordSet
RecordsetPtr g pRS;
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D _ _
Ví dụ: thực thi một câu lệnh SQL Select dữ liệu từ Table HocSinh
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
g_pRS.CreateInstance(__uuidof(Recordset));
g_pRS->CursorType = adOpenStatic;
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C // Use client cursor to enable AbsolutePosition property.
g_pRS->CursorLocation = adUseClient;
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R CString sSQL=“Select * from HocSinh”;
g_pCmd->CommandText=_bstr_t(sSQL);
B
À
I
G
I
B
À
I
G
I
L L g_pCmd->CommandType=adCmdText;
_variant_t vRecsAffected(0L);
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (40)40
g_pRS = g_pCmd->Execute(&vRecsAffected,NULL,adOptionUnspecified);
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Duyệt toàn bộ các mẫu tin trong RecordSet
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
g_pRS->MoveFirst();
Cú pháp
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V while (! g_pRS->EndOfFile)
{
_variant_t vField1;
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C _variant_t vField2;
vField1 = g_pRS->GetCollect(L“FieldName1");
vField2 = g pRS->GetCollect(L“FieldName2");
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 g_pRS->MoveNext();
}
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (41)41
S S
Đối tượng Recordset
D ệt t à bộ á ẫ ti t R dS t
N
D
O
W
S
N
D
O
W
S
D
O
D
O
uy o n c c m u n rong ecor e
Ví dụ: thực thi một câu lệnh SQL Select 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="";
sSQL = "Select * from HocSinh";
….
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V _variant_t vRecsAffected(0L);
g_pRS=doc->myADO.g_pCmd->Execute(&vRecsAffected,NULL,adOptionUnspecified);
//Duyet toan bo cac mau tin
CString s;
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
g_pRS->MoveFirst();
while (!g_pRS->EndOfFile)
{
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R _variant_t vMaHS;
_variant_t vTenHS;
vMaHS = doc->myADO.g_pRS->GetCollect(L"MaHS");
B
À
I
G
I
B
À
I
G
I
L L
vTenHS = doc->myADO.g_pRS->GetCollect(L"TenHS");
s.Format("%d",vMaHS.intVal);
MessageBox(s);
g pRS->MoveNext();
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (42)42
_
}
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
g_pRs->MoveFirst()
Về đầu danh sách
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
g pRs-> MoveLast()
Về cuối danh sách
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
_
Di chuyển về sau một mẫu tin
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R g_pRs-> MoveNext()
Về đầu về trước một mẫu tin
B
À
I
G
I
B
À
I
G
I
L L
g_pRs-> MovePrevious()
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (43)43
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D TenMH
Nhap mon tin hoc
Cau truc du lieu
Mhoc MaMH
COSC1310
COSC3320
TinChi Khoa
4
4
CNTT
CNTT
g_pRs->MoveFirst()
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Toan roi rac
Co so du lieu
MATH2410
COSC3380
3
3
TOAN
CNTT
Ọ
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 (44)44
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D TenMH
Nhap mon tin hoc
Cau truc du lieu
Mhoc MaMH
COSC1310
COSC3320
TinChi Khoa
4
4
CNTT
CNTT
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Toan roi rac
Co so du lieu
MATH2410
COSC3380
3
3
TOAN
CNTT
g_pRs->MoveLast()
Ọ
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 (45)45
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D TenMH
Nhap mon tin hoc
Cau truc du lieu
Mhoc MaMH
COSC1310
COSC3320
TinChi Khoa
4
4
CNTT
CNTT
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Toan roi rac
Co so du lieu
MATH2410
COSC3380
3
3
TOAN
CNTT
g_pRs->MoveNext()
Ọ
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 (46)46
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
TenMH
Nhap mon tin hoc
Cau truc du lieu
Mhoc MaMH
COSC1310
COSC3320
TinChi Khoa
4
4
CNTT
CNTT
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Toan roi rac
Co so du lieu
MATH2410
COSC3380
3
3
TOAN
CNTT
g pRs >MoveNext()
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C g_pRs->EOF = True _ -
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 (47)47
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D TenMH
Nhap mon tin hoc
Cau truc du lieu
Mhoc MaMH
COSC1310
COSC3320
TinChi Khoa
4
4
CNTT
CNTT
g_pRs->MovePrevious()
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Toan roi rac
Co so du lieu
MATH2410
COSC3380
3
3
TOAN
CNTT
Ọ
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 (48)48
S S
Đối tượng Recordset
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Các phương thức duyệt mẫu tin
R >BOF T
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
TenMH
Nhap mon tin hoc
Mhoc MaMH
COSC1310
TinChi Khoa
4 CNTT
g_pRs->MovePrevious()
g_p s- = rue
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Cau truc du lieu
Toan roi rac
Co so du lieu
COSC3320
MATH2410
COSC3380
4
3
3
CNTT
TOAN
CNTT
Ọ
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 (49)49
S S
Đối tượng Field
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Recordset Object
Fields Collection
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Field Object
Properties Methods
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
ActualSize AppendChunk
Atributes GetChunk
DataFormat
DefinedSi e
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
z
Name
NumericScale
OriginalValue
P i i
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
rec s on
Properties Collection
Type
UnderlyingValue
B
À
I
G
I
B
À
I
G
I
L L
Value
Properties Collection
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (50)50
Properties Object
Đạ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
Lập trình CSDL với ADO
ố
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Phòng giáo vụ tại một trường Đại học mu n tin học hóa việc
quản lý đăng ký học chuyên đề của sinh viên. Kết quả phân tích
thiết kế được mô hình CSDL quan hệ như sau:
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, DCHI, MANGANH)
Tân từ: Mỗi sinh viên có một mã số duy nhất (MASV), một họ tên
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V (HOTEN), thuộc một phái (PHAI), có một ngày sinh (NGAYSINH),
có một địa chỉ (DCHI), và học một ngành (MANGANH)
M SV T SV N Kh
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C a en am oa
K28.103.001 Trần Quốc Thanh 1 CNTT
K28 101 001 Nguyễn Công Phú 1 TOAN
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
. .
K28.101.002 Phan Anh Khanh 1 TOAN
K27 101 001 Ph Khá h Như 2 TOAN
B
À
I
G
I
B
À
I
G
I
L L
. . ạm n
K26.102.001 Trần Ngọc Dung 3 VLY
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (52)52
K25.201.001 Phạm Khánh Như 4 HOA
S S
Lập trình CSDL với ADO
ế ế
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thi t k màn hình quản lý sinh viên cho phép thực hiện các thao
tác liên quan đến sinh viên như:
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D Xem danh sách sinh viên
Thêm mới sinh viên
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V Xóa sinh viên khỏi danh sách
Thay đổi thông tin sinh viên
Ọ
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 (53)53
S S
Xem danh sách sinh viên
ế ế
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thi t k màn hình quản lý sinh viên cho phép thực hiện các thao
tác liên quan đến sinh viên như:
Lấy danh sách
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
sinh viên lưu trữ
trong table
SinhVien trong
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
CSDL hiển thị lên
Grid trong màn
hình Thông tin
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
sinh viên
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Thực hiện truy vấn
B
À
I
G
I
B
À
I
G
I
L L dữ liệu với câu lệnh
SELECT
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (54)54
S S
Xem danh sách sinh viên
ế ế
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thi t k màn hình quản lý sinh viên cho phép thực hiện các thao
tác liên quan đến sinh viên như:
Lấy danh sách
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
sinh viên lưu trữ
trong table
SinhVien trong
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
CSDL hiển thị lên
Grid trong màn
hình Thông tin
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C
sinh viên
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
Thực hiện truy vấn
B
À
I
G
I
B
À
I
G
I
L L dữ liệu với câu lệnh
SELECT
SELECT MASV, TENSV, NAM, KHOA
FROM SINHVIEN
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (55)55
S S
Xem danh sách sinh viên
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Lấy danh sách sinh viên lưu trữ trong table SinhVien trong
CSDL hiển thị lên Grid trong màn hình Thông tin sinh viên
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Cần phải sử dụng các đối tượng sau trong thư viện ADO
C ti
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V onnec on
Thiết lập kết nối với CSDL có chứa Table SinhVien
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Command
Thực thi câu lệnh SQL
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
SELECT MASV, TENSV, NAM, KHOA
FROM SINHVIEN
B
À
I
G
I
B
À
I
G
I
L L Recordset
Chứa kết quả thực thi câu lệnh SQL SELECT trên
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (56)56
S S
Thêm mới sinh viên
ế ế
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thi t k màn hình quản lý sinh viên cho phép thực hiện các thao
tác liên quan đến sinh viên như:
Lấy thông tin sinh
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
viên trong màn
hình Thông tin
sinh viên lưu vào
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
Table HocSinh
Ọ
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
Thực hiện câu lệnh
B
À
I
G
I
B
À
I
G
I
L L INSERT
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (57)57
S S
Thêm mới sinh viên
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Lấy thông tin sinh viên trong màn hình Thông tin sinh viên lưu
vào table SinhVien
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Cần phải sử dụng các đối tượng sau trong thư viện ADO
C ti
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V onnec on
Thiết lập kết nối với CSDL có chứa Table SinhVien
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Command
Thực thi câu lệnh SQL
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
INSERT INTO SINHVIEN (MASV, TENSV, NAM, KHOA)
VALUES (‘????’,’????’,???,’???’)
B
À
I
G
I
B
À
I
G
I
L L
Các giá trị MASV, TENSV,.. Được lấy từ các control
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (58)58
(Edittext) trong màn hình thông tin sinh viên
S S
Xóa sinh viên
ế ế
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thi t k màn hình quản lý sinh viên cho phép thực hiện các thao
tác liên quan đến sinh viên như:
Xóa sinh viên
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
đang được chọn
trong danh sách
sinh viên
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
Thực hiện câu lệnh
B
À
I
G
I
B
À
I
G
I
L L DELETE
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (59)59
S S
Xóa sinh viên
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Xóa sinh viên đang được chọn trong danh sách sinh viên ra
khỏi table SinhVien
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Cần phải sử dụng các đối tượng sau trong thư viện ADO
C ti
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V onnec on
Thiết lập kết nối với CSDL có chứa Table SinhVien
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Command
Thực thi câu lệnh SQL
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
DELETE FROM SINHVIEN
WHERE MASV = ‘???’
B
À
I
G
I
B
À
I
G
I
L L
Giá trị MASV được lấy từ các control (MaSV) trong màn
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (60)60
hình thông tin sinh viên
S S
Cập nhật thông tin sinh viên
ế ế
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Thi t k màn hình quản lý sinh viên cho phép thực hiện các thao
tác liên quan đến sinh viên như:
Thay đổi thông tin
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
sinh viên đang
được chọn bằng
thông tin đã được
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V
sửa đổi trong màn
hình thông tin sinh
viên
Ọ
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
Thực hiện câu lệnh
B
À
I
G
I
B
À
I
G
I
L L UPDATE
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (61)61
S S
Cập nhật thông tin sinh viên
N
D
O
W
S
N
D
O
W
S
D
O
D
O
Để cập nhật thông tin sinh viên trên màn hình vào table
SinhVien trong CSDL
R
Ì
N
H
W
I
R
Ì
N
H
W
I
V
Ớ
I
A
D
V
Ớ
I
A
D
Cần phải sử dụng các đối tượng sau trong thư viện ADO
C ti
N
L
Ậ
P
T
R
N
L
Ậ
P
T
R
C
S
D
L
V
C
S
D
L
V onnec on
Thiết lập kết nối với CSDL có chứa Table SinhVien
Ọ
C
P
H
Ầ
N
Ọ
C
P
H
Ầ
N
R
Ì
N
H
C
R
Ì
N
H
C Command
Thực thi câu lệnh SQL
I
Ả
N
G
H
Ọ
I
Ả
N
G
H
Ọ
L
Ậ
P
T
R
L
Ậ
P
T
R
UPDATE SINHVIEN
SET HOTEN = ‘???’, NAM = ???, KHOA = ‘???’
WHERE MASV = ‘???’
B
À
I
G
I
B
À
I
G
I
L L
Các giá trị MASV, TENSV,.. Được lấy từ các control
TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (62)62
(Edittext) trong màn hình thông tin sinh viên
S S
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 (63)63
Các file đính kèm theo tài liệu này:
- LẬP TRÌNH WINDOWS bài 07.pdf