您所在的步骤...
? | 连接数据源。 |
? | 可选择创建表示 SQL 查询命令的对象。 |
? | 可选择在 SQL 命令中将值指定为变量参数。 |
? | 执行命令。如果命令以行返回,将行存储在存储对象中。 |
? | 可选择对数据进行定位、检查、操作和编辑。 |
? | 适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务处理中嵌入更新数据。 |
? | 在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。 |
讨论
返回 Recordset 的方法有三种:Connection.Execute、Command.Execute 以及 Recordset.Open。以下是它们的 Visual Basic 语法:
connection.Execute(CommandText, RecordsAffected, Options)
command.Execute(RecordsAffected, Parameters, Options)
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
通过优化这些方法可发挥特定对象的优势。
必须在发出命令之前打开连接,每个发出命令的方法分别代表不同的连接:
? | Connection.Execute 方法使用由 Connection 对象自身表现的连接。 |
? | Command.Execute 方法使用在其 ActiveConnection 属性中设置的 Connection 对象。 |
? | Recordset.Open 方法所指定的或者是连接字符串,或者是 Connection 对象操作数;否则使用在其 ActiveConnection 属性中设置的 Connection 对象。 |
另一个不同点是命令在三种方法中的指定方式:
? | 在 Connection.Execute 方法中,命令是字符串。 |
? | 在 Command.Execute 方法中,命令是不可见的,它在 Command.CommandText 属性中指定。另外,此命令可含有参数符号 ('?'),它可以由“参数”VARIANT 数组参数中的相应参数替代。 |
? | 在 Recordset.Open 方法中,命令是 Source 参数,它可以是字符串或 Command 对象。 |
每种方法可根据性能需要替换使用:
? | Execute 方法针对(但不局限)于执行不返回数据的命令。 |
? | 两种 Execute 方法都可返回快速只读、仅向前 Recordset 对象。 |
? | Command.Execute 方法允许使用可高效重复利用的参数化命令。 |
? | 另一方面,Open 方法允许指定 CursorType (用于访问数据的策略及对象)和 LockType (指定其他用户的 isolation 级别以及游标是否在 immediate 或 batch modes 中支持更新)。 |
? | 请深入了解这些选项,它们体现了很多 Recordset 的功能。 |
本教程使用动态游标对 Recordset 的所有变更进行批处理,为此请使用以下方法:
Recordset rs = New ADODB.Recordset
rs.Open cmd, conn, adOpenDymanic, adLockBatchOptimistic
下一步 步骤 4