I. File Global.asa
2. Mô hình đối tợng ADO
2.1. Đối tợng kết nối (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 Connection chỉ cần chỉ định trình cung cấp OLEDB Provider sẽ dùng để tiếp cận dữ liệu. Các thông tin kết nối bổ sung khác nh username, password, server name,.. thờng đợc lu vào một chuỗi gọi là chuỗi kết nối (Connection String).
* Khai báo đối tợng Connection
Chú ý rằng mọi biến khai báo trong ASP đều có kiểu dữ liệ Variant, điều này có nghĩa là ta không thể dùng từ khoá As nh trong VB.
Để khai báo đối tợng Connecction, ta sử dụng cú pháp nh sau:
Dim myCon
* Khởi tạo đối tợng
Sau khi khai báo biến myCon với kiểu dữ liệu là Variant, ta có thể khởi tạo đối tợng này bằng phơng thức CreateObject của đối t- ợng Server nh đã trình bày với cú pháp nh sau
Set
myCon=CreateObject("ADODB.Connection")
Nếu sử dụng hệ điều hành Windows 9x với trình chủ Web là Personal Web Server, khai báo trên có thể đợc viết lại nh sau:
Set
myCon=Server.CreateObject("ADODB.Connect ion")
* Mở kết nối với CSDL
Sau khi khởi tạo đối tợng Connection, để tơng tác với CSDL ta phải kết nối với CSDL với cú pháp nh sau:
myCon.Open “Chuỗi kết nối”
Tuỳ thuộc vào loại CSDL cần tơng tác mà ta sử dụng trình điều khiển tơng ứng.
- Mở kết nối CSDL Access: Khi mở kết nối CSDL Access, ta sử dụng chuỗi kết nối với các thuộc tính nh sau:
strCon="Provider= Microsoft.Jet.OLEDB.4.0";&_ "Data
Source=D:\LTWeb\Database\BTTN.mdb" myCon.Open strCon
Chú ý, ta có thể sử dụng phơng thức ServerVariables của đối t- ợng Request để lấy đờng dẫn vật lý của tập tin nh khai báo sau:
strPath=request.ServerVariables("APPL_PHYSICAL_P ATH")
strCon="Provider=" & _
"Data Source= " & strPath & _ "\BTTN\BTTN.mdb"
myCon.Open strCon
Ví dụ 2.1. Kết nối với cở sở dữ liệu Access. <HTML>
<head>
<title> Welcome to ADO and ASP 3.0 </title> </head>
<body>
<h4> Welcome to ADO and Access </h4> <% Dim myCon,strCon strCon="Provider=Microsoft.Jet.OLEDB.4.0;" &_ "Data Source=D:\LTWeb\database\bttncd.mdb" Set myCon=CreateObject("ADODB.Connection") myCon.Open strCon if myCon.State=1 then
Response.Write "Connected to Access" else
Response.Write "Connect fail" end if
myCon.Close
Set myCon=Nothing %>
<hr size=1 color=red> </body>
Hoặc ta có thể viết nh sau <HTML>
<head>
<title> Welcome to ADO and ASP 3.0 </title> </head>
<body>
<h4> Welcome to ADO and Access </h4> <%
Dim myCon,strCon
strPath=request.ServerVariables("APPL_PHYSICAL_PATH" )
strCon="Provider=Microsoft.Jet.OLEDB.4.0;" &_ "Data Source= "& strPath
&"\DATABASE\BTTNCD.mdb"
Set myCon=CreateObject("ADODB.Connection") myCon.Open strCon
if myCon.State=1 then
Response.Write "Connected to Access" else
Response.Write "Connect fail" end if
myCon.Close
Set myCon=Nothing %>
</body> </html>
- Mở kết nối với CSDL SQL Server: nếu ta sử dụng đặc quyền SQL Server để đăng nhập CSDL SQL Server, ta sử dụng chuỗi kết nối nh sau: strCon="DRIVER=SQL Server;UID=sa;PWD=sa;"Database=Northwind;Server=." myCon.Open strCon hoặc: strCon="Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;UID=sa;" & _ "PWD=sa;Initial Catalog= Northwind;Server=." myCon.Open strCon
* Thực thi phát biểu SQL
Sau khi mở kết nối CSDL với chuỗi kết nối khai báo trong phần trên, bằng cách sử dụng phơng thức Execute của đối tợng Connection ta có thể thực thi phát biểu SQL dạng hành động hoặc một thủ tục nội tại với cú pháp nh sau:
myCon.Execute “SQL Statement”
Ví dụ 2.2. Thực hiện câu lệnh SQL sử dụng phát biểu Create table để tạo bảng:
<html> <head>
<title> Welcome to ADO and ASP 3.0 </title> </head>
<body>
<h4>Execute SQL Statement</h4>
<%
strPath=request.ServerVariables("APPL_PHYSICAL_PATH" )
strCon="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source= "& strPath &"\DATABASE\BTTNCD.mdb"
Set myCon=CreateObject("ADODB.Connection") myCon.Open strCon
if myCon.State=1 then
strSQL="Create Table tblABCDE"
strSQL=strSQL & "(AD int, DD int)" myCon.Execute strSQL
Response.Write "Created Table" else Response.Write "Fail" end if myCon.Close Set myCon=Nothing %>
<hr size=1 color=red> </body>
* Đóng kết nối
Sau khi mở kết nối CSDL và thực thi các câu lệnh SQL, hay mở tập dữ liệu, nếu không có nhu cầu sử dụng đối tợng Connection, ta có thể đóng kết nối tránh trờng hợp có nhiều kết nối đang mở bằng phơng thức close, với cú pháp nh sau:
myCon.Close
* Giải phóng đối tợng:
Nếu không có nhu cầu sử dụng đối tợng Connection, ta nên sử dụng phát biểu Set để huỷ đối tợng này và giải phóng bộ nhớ đã cấp phát cho chúng với cú pháp nh sau:
Set myCon=Nothing
Chú ý:
- Nếu ngay sau đó ta sử dụng lại đối tợng này, cần phải khởi tạo trở lại bằng phơng thức CreateObject của đối tợng Server.
- Nếu trớc đó cha khai báo đóng kết nối bằng phơng thức Close, thì phát biểu Set để huỷ bỏ đối tợng Connection sẽ tự động đóng trớc khi bị huỷ.
Có thể kết nối và truy xuất vào nguồn dữ liệu mà không bắt buộc phải dùng đố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 ta tách biệt thao tác kết nối và thao tác truy cập cơ sở 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 vào dữ liệu nh Insert, Update, Delete, gọi thủ tục Procedure Store,.. hoặc kiểm soát giao tác transaction nh Rollback, commit.