Biết được kiến trúc một ứngdụng
ế ậ ì ử
G NGHỆ P G NGHỆ P
TATION TATION
•Biết được lập trình CSDL sửdụng
Visual Basic và ADODB
MÔN CÔN
EMENT EMENT
Visual Basic và ADODB
•Biếtđược cách tổchứcmôhình3lớp
              
                                            
                                
            
 
            
                 83 trang
83 trang | 
Chia sẻ: Mr Hưng | Lượt xem: 1012 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Nhập môn công nghệ phần mềm - Architecture và Framework, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 hình Tra cứu GV Màn hình In DSGV
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
Giao diện Giao diện
Giao diện
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
Xử lý Xử lý Xử lý
Truy xuất dữ liệu (Select/Insert/Delete/Update)
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (62)
CSDL
SQL Server Object – Stored Procedure
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M Khái niệm
 Stored Procedure là các thủ tục được xây dựng để thực hiện các xử lý liên quan 
đến việc dữ liệu
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
 . 
 Stored Procedure được lưu trữ và thi hành ngay trong Server khi có yêu cầu.
Các thao tác liên quan đến Stored Procedure
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
 Tạo Stored Procedure
 Mở DB cần tạo table bằng cách click vào dấu + bên trái tên của 
DB để hiển thị các mục con trong DB. Ví dụ: Diagrams, Tables, 
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
Views, Stored procedure,
 Click phải chuột vào mục Stored procedures
 Chọn chức năng New Stored procedure trong menu sổ 
B
À
I
G
I
Ả
B
À
I
G
I
Ả xuống, xuất hiện dialog soạn thảo nội dung của stored
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (63)
SQL Server Object – Stored Procedure
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (64)
SQL Server Object – Stored Procedure
 T St d P d
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
ạo ore roce ure
 Đặt tên Stored trong [PROCEDURE NAME]
 Viết nội dung stored
 Sau khi viết xong nội dung xử lý trong stored 
 Nhấn Check Syntax: để kiểm tra cú pháp của các câu lệnh trong stored
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
 Nhấn OK: Lưu stored
 Nhấn Cancel: hủy bỏ thao tác tạo
 Sửa Stored Procedure
 Click vào mục Stored procedures để hiển thị danh sách Stored procedure tương ứng 
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T (bên phải)
 Chọn Stored procedure trong danh sách Stored procedures
 Click phải chuột vào mục Stored procedure cần sửa, vd: MyStoredPro 
 Chọn mục Properties trong menu context 
 Xuất hiện màn hình tương tự như màn hình Stored procedure
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
 Thực hiện các thao tác tương tự như phần tạo
 Xóa Stored Procedure
 Click vào mục Stored procedures để hiển thị danh sách Stored procedure tương ứng 
(bên phải)
Ch St d d t d h á h St d d
B
À
I
G
I
Ả
B
À
I
G
I
Ả
 ọn ore proce ure rong an s c ore proce ure
 Click phải chuột vào mục Stored procedure cần xóa, vd: MyStoredPro 
 Chọn mục Delete trong menu context
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (65)
SQL Server Object – Stored Procedure
CREATE PROCEDURE StoredName
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
@Parameter1 DataType [=DefaultValue,] 
@Parameter2 DataType OUTPUT,
@P t 3 D t T OUTPUT
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
arame er a a ype 
AS
BEGIN
BEGIN TRANSACTION
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
{T-SQL Statement1}
If @Error 0 
Goto Err_Handle
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
{T-SQL Statement2}
If @Error 0 
Goto Err_Handle
COMMIT TRANSACTION
B
À
I
G
I
Ả
B
À
I
G
I
Ả
Return(0) 
Err_Handle:
ROLLBACK TRANSACTION
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (66)
Return(@Error) 
END
SQL Server Object – Stored Procedure
Cấu trúc của một Stored Procedure bao gồm các phần chính sau đây
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
Phần Tên
Cú pháp
CREATE PROCEDURE StoredName
Ý nghĩa
Định nghĩa thủ tục nội với tên là StoredName
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
Ví dụ
CREATE PROCEDURE DemNhanVien
AS
SELECT Count(*)
FROM NhanVien
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
Phần tham số
Tương tự như bất kỳ một thủ tục nào trong một ngôn ngữ lập trình, phần tham số của một Stored 
được khai báo ngay sau phần tên của nó. 
Tham số nhập
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E 
Cú pháp:
@Parameter1 DataType [=DefaultValue] 
@Parameter1: Tên của biến số
DataType: Kiểu dữ liệu của biến
DefaultValue: Giá trị mặc định của biến
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (67)
SQL Server Object – Stored Procedure
CREATE PROCEDURE TruyenThamSo
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
@param0 int=NULL, -- Giá trị mặc định là NULL
@param1 int=1, -- Giá trị mặc định là 1
@param2 int=2 -- Giá trị mặc định là 2
AS
SELECT @ 0 @ 1 @ 2
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
 param , param , param
Với câu lệnh thực thi thủ tục TruyenThamSo 
EXEC TruyenThamSo
Kết quả
(Null) 1 2
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T EXEC TruyenThamSo 10,20,30
Kết quả
10 20 30
EXEC TruyenThamSo @param2=200, @param1=NULL
Kết quả
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E 
Null Null 200
EXEC TruyenThamSo 0, DEFAULT, 20
Kết quả
0 1 200
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (68)
SQL Server Object – Stored Procedure
ố ấ
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M Tham s xu t
Cú pháp:
@Parameter1 DataType OUTPUT
@Parameter1: Tên của biến số
DataType: Kiểu dữ liệu của biến
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
DefaultValue: Giá trị mặc định của biến
Ví dụ:
--Khai báo thủ tục
CREATE PROCEDURE count_tables @authorcount int OUTPUT, 
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T @titlecount int OUTPUT
AS
SELECT * FROM authors
SET @authorcount=@@ROWCOUNT
SELECT * FROM titles
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E 
SET @titlecount=@@ROWCOUNT
RETURN(0)
--Thực thi thủ tục
DECLARE @a_count int, @t_count int
EXEC t t bl @ t OUTPUT @t t OUTPUT
B
À
I
G
I
Ả
B
À
I
G
I
Ả
 coun _ a es a_coun , _coun 
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (69)
KHAI BÁO BIẾN 
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (70)
Kh i bá biế
KHAI BÁO BIẾN 
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M a o n
Cú pháp
DECLARE @Name DataType 
@Name: là tên của biến phải được bắt đầu với ký tự@
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
 , 
DataType: kiểu dữ liệu của biến, bao gồm tất cả các kiểu dữ liệu của hệ 
thống trừ các kiểu sau: text, ntext, image.
Ví dụ
Kh i bá biế l t ữ ố R d t ột T bl à đó
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T -- a o n ưu r s ecor rong m a e n o 
DECLARE @nNumRecord int
--Khai báo biến lưu trữ số tổng số tiền
DECLARE @SumMoney decimal(18,2)
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
--Khai báo biến lưu trữ tên 
DECLARE @sName char(30)
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (71)
KHAI BÁO BIẾN 
Cú pháp 1: Ví dụ
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
SET @Name = Value
@Name: Tên biến
Value: Giá trị cần gán cho biến
Cú pháp 2:
Cú pháp 1:
DECLARE @HoTen char(20)
SET @HoTen = ‘Nguyễn Công Phú’
Cú pháp 2:
DECLARE @HoTen char(20)
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
SELECT @Name = Value
@Name: Tên biến
Value: Giá trị cần gán cho biến
Hoặc 
SELECT @Name = coloum
SELECT @HoTen = ‘Nguyễn Công Phú’
hoặc 
--Tìm lương lớn nhất của tất cả các nhân viên
DECLARE @MaxSalary decimal(18,2)
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
FROM TableName
@Name: Tên biến
Column: Tên cột trong Table cần gán cho 
biến
SELECT @MaxSalary = MAX(Salary)
FROM Employee
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (72)
SQL Server Object – Local Variables
Cá biế đ ử d t ấ t ấ h là á th ố
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
c n ược s ụng rong c u ruy v n n ư c c am s . 
-Cho lược đồ CSDL và dữ liệu tương ứng như sau:
HocSinh DiemThi
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Bao 10/10/1977 123 01 01 2001 10
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
02 Phu 11/10/1079 124 03 01 2002 8
-Ví dụ 1: Liệt kê danh sách học Ví dụ 3: Liệt kê danh sách các học sinh có
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E 
sinh có ngày sinh vào ngày 
‘10/10/1977’
DECLARE @NgaySinh datetime
địa chỉ là ‘123’ và điểm thi lớn hơn 10
DECLARE @DiaChi varchar(50), @Diem 
Decimal
B
À
I
G
I
Ả
B
À
I
G
I
Ả SET @NgaySinh=’10/10/1977’
SELECT * 
FROM HocSinh
WHERE NgaySinh = @NgaySinh
SELECT @DiaChi=’123’, @Diem=10
SELECT * 
FROM HocSinh JOIN DiemThi ON 
HocSinh.MaHS = DiemThi.MaHS
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (73)
WHERE DiaChi = @DiaChi AND DiemThi 
>= @Diem
NỘI DUNG TRÌNH BÀY
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
• Kiến trúc của 1 application
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
• Lập trình CSDL với Visual Basic & 
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T ADODB
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
• Mô hình 3 lớp ( 3-tier)
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (74)
Mô hình 3 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (75)
Mô hình 3 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (76)
Mô hình 3 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M Du lieu
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
Model Controller
Provier
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
M d l Controller Provider
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E o e
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (77)
D li
Mô hình 3 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
u eu
Model Controller
Provier
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
Model Controller Provider
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
Port_1 Port_2 Port_3
ADO
ADO.NET ODP.NET
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (78)
Mô hình 3 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (79)
Mô hình 3 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (80)
VSS- Quản lý và chia sẻ source code
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (81)
PH
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (82) 82
Hệ hố ó hiề à hì h ù ấ
Nhược điểm mô hình 1 tier
P
H
Ầ
N
M
Ề
M
P
H
Ầ
N
M
Ề
M  t ng c n u m n n c ng truy xu t
đến 1 thành phần dữ liệu (vd: Table Giáo viên,
sinh viên ) Æ các đoạn code truy xuất dữ liệu
G
N
G
H
Ệ
P
G
N
G
H
Ệ
P
T
A
T
I
O
N
T
A
T
I
O
N
,
lặp lại nhiều lần, dễ xảy ra sai soát nếu có thay
đổi
M
Ô
N
C
Ô
N
M
Ô
N
C
Ô
N
E
M
E
N
T
E
M
E
N
T
Giao diện, xử lý và giao diện
N
G
N
H
Ậ
P
N
G
N
H
Ậ
P
I
M
P
L
E
I
M
P
L
E
B
À
I
G
I
Ả
B
À
I
G
I
Ả
TRẦN NGỌC BẢO  KHOA TOÁN -TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM (83)
            Các file đính kèm theo tài liệu này:
 se_11_5954.pdf se_11_5954.pdf