Xem mẫu
- Active Server Pages
- Chọn trình điều khiển ODBC tương ứng với các nguồn dữ liệu mà người dùng
định truy xuất đến. Ví dụ, chọn Driver do Microsoft Access (*.mdb) à Finish.
o Data Source name: Đặt tên cho nguồn dữ liệu
o Description: Mô tả
o Select: Chọn đường dẫn đến cơ sở dữ liệu
o Chọn OK
Kết quả cửa sổ ODBC Data Source:
-
Từ bây giờ, bạn có thể truy xuất lên cơ sở dữ liệu vừa khai báo bằng các đối
tượng Connection, Command và Recordset của ADO
Trung tâm phát triển phần mềm - ĐHĐN - 43 -
- Active Server Pages
3. Kiến trúc ADO
Nguồn dữ liệu để chỉ mọi loại dữ liệu và nơi chứa thông tin có thể truy xuất
được. ADO thiết kế cho mục đích truy xuất cơ sở dữ liệu tổng quát, không chỉ dùng
xử lý các hệ cơ sở dữ liệu thuần tuý, bạn có thể sử dụng ADO để truy xuất cơ sở dữ
liệu mail, dữ liệu file, .....
Application
VC ++ VB Script Java
ADO
OLE DB
E- mail CSDL File System
Data Store
4. Đối tượng trong ADO
Trong ADO, hệ thống đối tượng được nhấn mạnh, bởi vì phần lớn đối tượng
ADO được tạo độc lập, điều này cho phép chỉ tạo và tìm những đối tượng cần thiết.
ADO có 3 đối tượng chính cung cấp giao diện truy xuất cơ sở dữ liệu là
Connection, Command và Recodset. Ngoài ra, ADO còn có các đối tượng và tập
hợp khác như: Field, Property, Error,...
a. Đối tượng Connection (kết nối)
Đối tượng Connection cho phép thực hiện việc mở kết nối đến nguồn dữ liệu
cần truy xuất. Thông qua đối tượng Connection bạn chỉ định trình cung cấp OLE
DB, Providers sẽ dùng để tiếp cận dữ liệu. Đối tượng Connection trình bày phiên
làm việc duy nhất với nguồn dữ liệu. Vớí hệ thống cơ sở dữ liệu client/server, nó
tương đương với một kết nối mạng tới server.
Lưu ý, để có thể kết nối và truy xuất vào nguồn dữ liệu, không bắt buộc bạn
phải tạo đối tượng Connection. Các đối tượng khác như Command, Recordset,
Record,...cũng cho phép mở trực tiếp kết nối. Tuy nhiên, sử dụng đối tượng
Connection sẽ cho phép bạn tách biệt thao tác kết nối và thao tác truy cập dữ liệu.
Hơn nữa, đối tượng Connection còn cung cấp thêm một số chức năng chuyên dụng
khác như cho phép thực thi câu lệnh SQL tác động lên cơ sở dữ liệu(insert,
update,...) hay xác nhận thay đổi (Comit).....
Một số thuộc tínhvà phương thức thường sử dụng
ð Thuộc tính ConnectionString: Chuỗi chứa thông tin để kết nối dữ liệu
nguồn, gồm 5 cặp giá trị:
- Provider: Xác định tên trình cung cấp sẽ sử dụng với kết nối
Tên nguồn dữ liệu ODBC sẽ kết nối
- DSN:
- UserName: Tên người dùng sẽ kết nối
- Password: Mật mã truy xuất cơ sở dữ liệu
Trung tâm phát triển phần mềm - ĐHĐN - 44 -
- Active Server Pages
- File: tên tập tin chứa thông tin xác định kết nối.
ð Phương thức Close: Đóng kết nối đang mở
ð Phương thức Open: Mở một kết nối
ð Phương thức Execute: Thi hành một câu lệnh SQL, vấn tin hay thủ tục lưu
trữ. Phương thức này trả lại một tập mẩu tin
b. Đối tượng Command (lệnh thực thi)
Mặc dù có thể sử dụng đối tượng connection để thực thi các lệnh SQL nhưng
tốt nhất nên dùng Connectiom cho mục đích kết nối. Đối tượng Command sẽ được
dùng cho mục đích thực thi lệnh.Khi đối tượng connection thực thi lệnh, mặc định
Connection sẽ khởi tạo và gọi đến đối tượng Command.
Đối tượng Command có thể dùng cho hai mục đích: thực thi các lệnh SQL
không cần nhận kết quả trả về (như insert, delete,..) hoặc thực thi các lệnh trả về tập
Recordset như lệnh Select.
c. Đối tượng Recordset (các mẩu tin)
Recordset có thể nói là đối tượng được sử dụng thường xuyên nhất trong ADO.
Đối tượng này cung cấp cho bạn kết quả trả về từ câu lệnh truy vấn một tập các mẩu
tin. Trang ASP có thể dùng vòng lặp duyệt qua các mẩu tin này và hiển thị dữ liệu
kết xuất ra trang Web phía trình duyệt. Ngoài ra, recordset còn cho phép lọc dữ liệu
từ các mẫu tin, truy xuất đến từng trường hợp cụ thể của mẫu tin thông qua đối
tượng Field hoặc danh sách các trường trong mẫu tin thông qua đối tượng Fields.
Một số thuộc tính, phương thức thường sử dụng
ð Thuộc tính AbsolutePage: Xác định trang để di chuyển con trỏ mẩu tin hiện
hành tới
ð Thuộc tính AbsolutePosition: Xác định mẫu tin để di chuyển mẩu tin hiện
hành tới
ð Thuộc tính BOF: Con trỏ mẩu tin hiện hành có ở đầu tập mẩu tin hay không
ð Thuộc tính EOF: Con trỏ mẩu tin hiện hành có ở cuối tập mẩu tin hay không
ð Thuộc tính PageCount: Số trang trong tập mẩu tin
ð Thuộc tính PageSize: Số mẩu tin trong một trang
ð Thuộc tính RecordCount: Tổng số mẫu tin trong tập mẩu tin
ð Thuộc tính AddNew: Thêm mẩu tin mới với các giá trị xác định
ð Phương thức Close: Đóng tập mẫu tin
ð Phương thức Delete: Xoá mẩu tin hiện hành
ð Phương thức MoveFirst: Di chuyển con trỏ mẩu tin hiện hành đến mẩu tin
đầu tiên
ð Phương thức MoveLast: Di chuyển con trỏ mẩu tin hiện hành về cuối mẩu
tin trong tập mẩu tin.
ð Phương thức MoveNext: Di chuyển con trỏ mẩu tin hiện hành tới mẩu tin kế
tiếp trong tập mẩu tin.
ð Phương thức Open: Mở tập mẩu tin
ð Phương thức Update: Cập nhật mẩu tin hiện hành
Trung tâm phát triển phần mềm - ĐHĐN - 45 -
- Active Server Pages
d. Đối tượng Error
Chứa các chi tiết về lỗi truy xuất dữ liệu liên quan với một toán tử đơn liên
quan ADO.
e. Đối tượng Field
Trình bày một cột dữ liệu với kiểu dữ liệu chung
f. Đối tượng Parameter
Trình bày tham số hay đối số được kết hợp với một đối tượng Command dựa
trên vấn tin hay thủ tục lưu trữ.
g. Đối tượng Property
Giới thiệu đặc tính động của đối tượng ADO do nhà cung cấp định nghĩa.
5. Kết nối nguồn dữ liệu
a. Kết nối chuỗi
Chuỗi kết nối dùng để cung cấp thông tin cho đối tượng Connection biết đặc
điểm của cơ sở hay nguồn dữ liệu mà ADO cần truy xuất.
§ Cơ sở dữ liệu MS Access
ConnStr=”Provider=Microsoft.Jet.OLEDB.4.0;
Data source=C:\giaotrinh\dulieu.mdb ”
Set conn=server.CreateObject(“ADODB.Connection”)
Conn.open connStr
§ Cơ sở dữ liệu MS Access thông qua trình điều khiển ODBC
ConnStr=”Drive=Microsoft Access Drive (*.mdb);
DBQ=C:\giaotrinh\dulieu.mdb”
Set conn=server.CreateObject(“ADODB.Connection”)
Conn.open connStr
§ Cơ sở dữ liệu MS SQL Server
ConnStr=”Provider=SQLOLEDB;Data Source=servername;
Initial catalog=database_name;
User ID=user_name; pwd=User_password”
Set conn=server.CreateObject(“ADODB.Connection”)
Conn.open connStr
Ví dụ: Ứng dụng Bookshop kết nối vào cơ sở dữ liệu SQL server với tên database là
bookshop, username là sa, pwd trống, như sau:
b. Đóng kết nối
Sau khi mở kết nối và xử lý xong dữ liệu, nên đóng kết nối lại bằng phương
thức close của đối tượng Connection.
Ví dụ:
Trung tâm phát triển phần mềm - ĐHĐN - 46 -
- Active Server Pages
...
Rs.open “Select * from Products”, conn
......
‘Đóng kết nối
conn.close
Đóng kết nối sẽ giải phóng được tài nguyên, giúp cơ sở dữ liệu thao tác và xử lý
nhanh hơn. Thực tế khi gọi phương thức close của Connection, kết nối sẽ được trả
về cho bộ quản lý tài nguyên. Vì mở một kết nối sẽ chiếm tài nguyên và đòi hỏi hệ
thống phải quản lý chặt chẽ, do đó nếu đã hoàn tất quá trình xử lý liên quan đến cơ
sở dữ liệu, nên gọi phương thức close để trả kết nối về cho hệ thống, phục vụ cho
những trang khác.
6. Sử dụng Recordset
a. Tạo Recordset
Recordset là đối tượng thường sử dụng nhất trong ADO. Recordset cho phép
xem và trích rút dữ liệu theo dạng bảng. Đối tượng Recordset tạo ra như sau:
Set rs = Server.CreateObject (“ADODB.recordset ”)
Để rút trích dữ liệu từ một bảng nào đó trong cơ sở dữ liệu, thường kết hợp đối
tượng Connection vào câu lệnh SQL Select trong phương thức Open của recordset.
Ví dụ: để lấy về tập các mẫu tin trong bảng Sinhvien của ứng dụng, bạn gọi
phương thức Open như sau:
Rs.Open “Select * from Sinhvien”, conn
b. Duyệt các mẫu tin trong Recordset
Để đi đến từng mẫu tin của recordset, ta dùng vòng lặp while và kiểm tra xem
đã đến mẫu tin cuối cùng chưa dựa vào thuộc tính EOF (end of file).
Ví dụ: In ra danh sách các loại hàng trong bảng Loaihang
c. Truy xuất các trường của mẩu tin
Bạn có thể chỉ định trực tiếp tên trường cần truy xuất ngay trong đối tượng
Recordset. Ví dụ:
Tuy nhiên bạn có thể sử dụng đối tượng tập hợp Fields để truy xuất nội dung
của một trường trong mẫu tin theo nhiều cách. Những cách sau đều hợp lệ và tương
đương nhau:
Rs(“hoten”)
Rs.Fields(“hoten”).Value
Rs.Fields(1).Value
Trung tâm phát triển phần mềm - ĐHĐN - 47 -
- Active Server Pages
Nếu muốn duyệt qua tất cả các trường trong mẩu tin, bạn có thể dùng lệnh For
each theo cách tổng quát sau:
For each fld In rs.Fields
Response.write fld.name+ “:” + Fld.Value + “”
Next
d.Lọc các mẫu tin trong recordset
Điều kiện lọc các mẫu tin (chỉ chọn những mẫu tin thoả mãn điều kiện nhất
định) được thực hiện ngay trên mệnh đề where của câu lệnh SQL khi gọi phương
thức Open của Recordset. Ví dụ:
SqlStr= “Select * from sinhvien where nsinh=’”+Danang+ “’”
Rs.open sqlStr, conn
8. Ứng dụng
Trong giới hạn giáo trình này, cơ sở dữ liệu sử dụng là Microsoft Access.
Tạo cơ sở dữ liệu Access tên Dulieu, chứa bảng Sinhvien như sau:
Table: Sinhvien
Kiểu số, là khoá của bảng(Number)
ID
Kiểu chuỗi(Text)
Holot
Kiểu chuỗi(Text)
Ten
Kiếu ngày(Date/time)
Ngaysinh
a. Hiển thị dữ liệu từ một bảng(table)
Sinh vien
nguon tai.lieu . vn