目录

  1. ADO 简介
  2. 创建 ADO 对象
  3. 常用对象和方法
  4. 数据库连接与查询示例
  5. 事务管理
  6. 错误处理
  7. 参考资料
  8. 出站链接

1. ADO 简介

ADO(ActiveX Data Objects)是用于访问和操作数据库的技术。它提供了一个高效的接口,通过 Connection 对象、Command 对象和 Recordset 对象,可以轻松地连接数据库、执行查询和处理数据。

📌 常见用途

  • 连接数据库并执行 SQL 查询。
  • 获取和操作数据库中的数据。
  • 支持多种数据库,如 SQL Server、Oracle、MySQL 等。

2. 创建 ADO 对象

在 ASP 中,通常使用 Server.CreateObject 方法来创建 ADO 对象。主要创建的对象包括 ConnectionCommand、和 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 NextErr 对象来处理错误。

示例:捕获 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. 参考资料


8. 出站链接


使用 ADO 对象,你可以轻松地与数据库交互,执行查询、更新数据,并管理事务等。通过 ADO,开发者可以高效地访问和操作不同类型的数据库!🚀