1
Kết nối Cơ sở dữ liệu
2
Kết nối cơ sở dữ liệu
Kiến trúc chung
ADO
Kết nối cơ sở dữ liệu với ADO
3
Kiến trúc chung
Kiến trúc chung truy cập dữ liệu
Lớp trình diễn - Presentation layer
Lớp nghiệp vụ - Bussiness layer
Lớp dữ liệu - Data layer
4
Kiến trúc chung
Kiến trúc kết nối
cơ sở dữ liệu
5
ADO
ADO - ActiveX Data Objects
ADO là một giao diện lập trình mức ứng dụng
để truy cập dữ liệu thông qua OLE DB
ADO cung cấp một phương thức truy cập dữ
liệu nhất quán và hiệu năng cao
OLE DB là một giao diện lập trình mức hệ
thống cho phép truy cập trực tiếp tới tất cả
các kiểu dữ liệu
6
ADO
Kiến trúc
7
ADO
Kiến trúc
Application - Ứng dụng sử dụng các đối tượng của ADO
để giao tiếp với một nguồn dữ liệu (Data Source). Gửi các
câu lệnh SQL và xử lý kết quả trả về
ADO - Quản lý việc giao tiếp giữa ứng dụng và trình cung
cấp (provider)
OLE DB provider - Xử lý các lời gọi ADO từ ứng dụng, kết
nối đến từng nguồn dữ liệu, truyền các câu lệnh SQL từ
ứng dụng đến nguồn dữ liệu và trả kết quả về cho ứng
dụng
Data source - Chứa thông tin sử dụng bởi trình cung cấp
để truy cập vào một thể hiện cụ thể của dữ liệu trong
một hệ quản trị cơ sở dữ liệu
8
ADO
Các đối tượng cơ bản
Connection - Quản lý một kết nối tới một
nguồn dữ liệu, đối tượng Connection định
nghĩa các thuộc tính của kết nối (trong đó
có thuộc tính Provider và Data Source)
Recordset - Quản lý tập các bản ghi thu
được từ truy vấn tới cơ sở dữ liệu
9
Kết nối CSDL với ADO
Thao tác với Connection
Thao tác trên Recordset
10
Thao tác với Connection
Mở kết nối tới nguồn dữ liệu
‘file thuDB.asp trong thư mục C:\MyWebs
Dim cnn
set cnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " &_
“Data Source=C:\MyWebs\DB\thu.mdb"
cnn.Open
Data Source = Server.MapPath("db/thu.mdb")
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " &_
“Data Source= " & Server.MapPath("db/thu.mdb")
11
Thao tác với Connection
Đóng kết nối
cnn.Close
12
Thao tác trên Recordset
Thực hiện một câu truy vấn
Recordset.Open(Source, ActiveConnection,
CursorType, LockType, Options)
Source - Câu lệnh truy vấn
ActiveConnection - tên đối tượng kết nối
CursorType - Kiểu con trỏ khi mở Recordset
LockType - Kiểu khoá khi mở Recordset
Options - Lựa chọn thêm
13
Thao tác trên Recordset
Thực hiện một câu truy vấn
dim rs
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select * from person", cnn
14
Thao tác trên Recordset
Truy cập đến các trường của 1 bản ghi (Fields of Record)
trong tập bản ghi Recordset
Response. Write rs(“name”) & “ có tuổi là “ & rs(“age”)
Response. Write rs![name] & “ có tuổi là “ & rs![age]
Truy cập đến các trường của tất cả các bản ghi trong tập
bản ghi Recordset
if not rs.EOF then rs.MoveFirst
Do Until rs.EOF
Response. Write rs(“name”) & “ có tuổi là “ & rs(“age”) & ”<br>”
rs.MoveNext
Loop
15
Thao tác trên Recordset
Di chuyển qua các bản ghi
Recordset.MoveFirst
Recordset.MoveLast
Recordset.MoveNext
Recordset.MovePrevious
16
Thao tác trên Recordset
Bookmark
Thuộc tính của Recordset
Đánh dấu vị trí của bản ghi hiện tại
Thường được dùng để lưu vị trí của một
bản ghi nào đó làm điểm quay trở về sau
đó
Dim varBkmk
varBkmk = Recordset.Bookmark
17
Thao tác trên Recordset
Tìm kiếm bản ghi - Find
Recordset.Find “điều kiện”, [SkipRows], [Direction], [Start]
Các toán tử điều kiện
=, <, >, <=, >=, <>
LIKE
rs.Find “name=‘A’ “
rs.Find “name LIKE ‘%A%’ “
Chú ý: 1 xâu trong điều kiện được đặt trong cặp nháy đơn
18
Thao tác trên Recordset
Lọc các bản ghi - Filter: Tạm thời giới hạn các
bản ghi trong Recordset
Recordset.Filter = “điều kiện tìm kiếm”
Chú ý: 1 xâu trong điều kiện được đặt trong cặp nháy đơn
rs.Filter = “name=‘A’ OR age>30”
Xoá bỏ bộ lọc bằng cách thiết lập lại thuộc tính Filter
về rỗng
rs.Filter = “”
19
Thao tác trên Recordset
Cập nhật bản ghi
Thêm bản ghi
Recordset.AddNew
Nhập nội dung cho bản ghi mới
Recordset.Update
rs.AddNew
rs(“name”) = “D”
rs(“age”) = 50
rs.Update
20
Thao tác trên Recordset
Cập nhật bản ghi
Sửa bản ghi
Thay đổi nội dung bản ghi (vị trí hiện tại)
Recordset.Update
rs(“name”) = “Nguyễn Văn B”
rs.Update
Xoá bản ghi
Recordset.Delete ‘Xoá bản ghi hiện tại
21
Thao tác trên Recordset
Một số thuộc tính khác
EOF (End Of File) - True/False
BOF (Beginning Of File) - True/False
RecordCount - Số bản ghi trong Recordset
22
SQL - SELECT
SELECT field_1, field_2, field_N FROM table
23
SQL - mệnh đề WHERE
SELECT field(s) FROM table(s)
WHERE field operator value
24
SQL - các toán tử (operator)
=
<>
>
<
>=
<=
BETWEEN
LIKE ‘%value%’
IN
25
SLQ - INSERT
INSERT INTO
table_name[(field1,field2, fieldN)]
VALUES(value1, value2, valueN)