目录
1. ADO 简介
ADO(ActiveX Data Objects)是用于访问和操作数据库的技术。它提供了一个高效的接口,通过 Connection 对象、Command 对象和 Recordset 对象,可以轻松地连接数据库、执行查询和处理数据。
📌 常见用途:
- 连接数据库并执行 SQL 查询。
- 获取和操作数据库中的数据。
- 支持多种数据库,如 SQL Server、Oracle、MySQL 等。
2. 创建 ADO 对象
在 ASP 中,通常使用 Server.CreateObject
方法来创建 ADO 对象。主要创建的对象包括 Connection、Command、和 Recordset。
示例:创建 ADO Connection 对象
<%
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
' 设置数据库连接字符串
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
' 打开数据库连接
conn.Open
' 清理
Set conn = Nothing
%>
3. 常用对象和方法
31. Connection 对象
Connection 对象用于建立与数据库的连接。通过该对象,可以打开数据库连接、关闭连接、管理事务等。
常用方法:
Open
:打开数据库连接。Close
:关闭数据库连接。BeginTrans
:启动事务。CommitTrans
:提交事务。RollbackTrans
:回滚事务。
示例:使用 Connection 对象连接数据库
<%
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
' 连接字符串
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
' 打开数据库连接
conn.Open
' 执行其他操作
' 关闭连接
conn.Close
' 清理
Set conn = Nothing
%>
32. Command 对象
Command 对象用于执行 SQL 查询或存储过程。它可以用来执行简单的 SQL 语句,也可以绑定参数来执行更复杂的查询。
常用方法:
Execute
:执行 SQL 语句。Parameters.Append
:添加查询参数。
示例:使用 Command 对象执行 SQL 查询
<%
Dim conn, cmd, sql
Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
' 连接数据库
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
conn.Open
' 设置 SQL 查询
sql = "SELECT * FROM Users WHERE UserID = ?"
' 设置 Command 对象的属性
cmd.ActiveConnection = conn
cmd.CommandText = sql
cmd.Parameters.Append cmd.CreateParameter(, 1, 1, 50, 1) ' 1 表示 UserID 参数
' 执行查询
Set rs = cmd.Execute
' 显示查询结果
While Not rs.EOF
Response.Write rs("UserName") & "<br>"
rs.MoveNext
Wend
' 清理
rs.Close
Set rs = Nothing
Set cmd = Nothing
Set conn = Nothing
%>
33. Recordset 对象
Recordset 对象用于存储从数据库查询返回的数据。通过该对象,可以访问数据、更新数据以及遍历记录。
常用方法:
Open
:打开记录集。Close
:关闭记录集。MoveNext
:移动到下一条记录。EOF
:检查记录集是否到达末尾。
示例:使用 Recordset 对象遍历查询结果
<%
Dim conn, rs, sql
Set conn = Server.CreateObject("ADODB.Connection")
' 连接数据库
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
conn.Open
' 创建 SQL 查询
sql = "SELECT UserID, UserName FROM Users"
' 创建 Recordset 对象并执行查询
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn
' 遍历记录集并显示数据
While Not rs.EOF
Response.Write "UserID: " & rs("UserID") & ", UserName: " & rs("UserName") & "<br>"
rs.MoveNext
Wend
' 清理
rs.Close
Set rs = Nothing
Set conn = Nothing
%>
4. 数据库连接与查询示例
示例 1:连接数据库并查询数据
<%
Dim conn, rs, sql
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
' 设置连接字符串
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
' 打开连接
conn.Open
' SQL 查询
sql = "SELECT UserID, UserName FROM Users"
' 执行查询并将结果存储到 Recordset 对象
rs.Open sql, conn
' 显示查询结果
Do While Not rs.EOF
Response.Write "UserID: " & rs("UserID") & " | UserName: " & rs("UserName") & "<br>"
rs.MoveNext
Loop
' 清理
rs.Close
Set rs = Nothing
Set conn = Nothing
%>
示例 2:执行更新查询
<%
Dim conn, cmd, sql
Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
' 设置连接字符串
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
' 打开连接
conn.Open
' 设置 SQL 更新查询
sql = "UPDATE Users SET UserName = 'NewUserName' WHERE UserID = 1"
' 设置 Command 对象
cmd.ActiveConnection = conn
cmd.CommandText = sql
' 执行更新
cmd.Execute
' 清理
Set cmd = Nothing
Set conn = Nothing
%>
5. 事务管理
ADO 提供了事务处理功能,使得多个操作可以作为一个原子操作来执行。
示例:使用事务处理多个 SQL 查询
<%
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
' 连接数据库
conn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
conn.Open
' 启动事务
conn.BeginTrans
On Error Resume Next
' 执行多条 SQL 语句
conn.Execute "UPDATE Users SET UserName = 'UpdatedUser' WHERE UserID = 1"
conn.Execute "DELETE FROM Orders WHERE OrderID = 100"
' 如果没有错误,提交事务
If Err.Number = 0 Then
conn.CommitTrans
Response.Write "事务提交成功"
Else
conn.RollbackTrans
Response.Write "发生错误,事务已回滚"
End If
' 清理
Set conn = Nothing
%>
6. 错误处理
在使用 ADO 时,错误处理是非常重要的。通常通过 On Error Resume Next
和 Err
对象来处理错误。
示例:捕获 ADO 错误
<%
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
' 开始错误处理
On Error Resume Next
' 连接数据库
conn.Open "Provider=SQLOLEDB;Data Source=invalid_server;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;"
' 检查错误
If Err.Number <> 0 Then
Response.Write "错误: " & Err.Description & "<br>"
Err.Clear
End If
' 清理
Set conn = Nothing
%>
7. 参考资料
- Microsoft Docs – ADO 参考
- W3Schools – ASP ADO 示例
8. 出站链接
使用 ADO 对象,你可以轻松地与数据库交互,执行查询、更新数据,并管理事务等。通过 ADO,开发者可以高效地访问和操作不同类型的数据库!🚀
发表回复