命令对象 (ADO)
定义要针对数据源执行的特定命令。
言论
使用 Command 对象查询数据库并返回 Recordset 对象中的记录、执行批量操作或操作数据库的结构。 根据提供程序的功能,某些 命令 集合、方法或属性在被引用时可能会生成错误。
使用 Command 对象的集合、方法和属性,可以执行以下操作:
使用 CommandText 属性定义命令(例如 SQL 语句)的可执行文本。 或者,对于简单字符串(例如 XML 模板查询)以外的命令或查询结构,请使用 CommandStream 属性定义命令。
(可选)指示在 CommandText 中使用的命令方言,或使用 Dialect 属性 CommandStream。
使用 参数 对象和 Parameters 集合定义参数化查询或存储过程参数。
指示是否应使用 NamedParameters 属性将参数名称传递给提供程序。
执行命令并返回 Recordset 对象(如果适合 Execute 方法)。
使用 CommandType 属性指定命令的类型,然后再执行以优化性能。
在使用 Prepared 属性执行之前,控制提供程序是否保存命令的已准备(或已编译)版本。
设置提供程序将等待命令使用 CommandTimeout 属性执行的秒数。
通过设置 ActiveConnection 属性,将打开的连接与 Command 对象相关联。
设置 Name 属性,将 Command 对象标识为关联 Connection 对象上的方法。
将 Command 对象传递给 Recordset 的 Source 属性以获取数据。
使用 属性 集合访问提供程序特定的属性。
注意
若要在不使用 Command 对象的情况下执行查询,请将查询字符串传递给 Connection 对象的 Execute 方法,或传递给 Recordset 对象的 Open 方法。 但是,如果要保留命令文本并重新执行命令,或使用查询参数,则需要 Command 对象。
若要独立于以前定义的 Connection 对象创建 Command 对象,请将其 ActiveConnection 属性设置为有效的连接字符串。 ADO 仍创建一个 Connection 对象,但它不会将该对象分配给对象变量。 但是,如果将多个 Command 对象与同一连接关联,则应显式创建并打开 Connection 对象;这会将 Connection 对象分配给对象变量。 请确保 连接 对象已成功打开,然后再将其分配给 Command 对象的 ActiveConnection 属性,因为分配已关闭的 Connection 对象会导致错误。 如果未将 Command 对象的 ActiveConnection 属性设置为此对象变量,则即使使用相同的连接字符串,ADO 也会为每个 Command 对象创建新的 Connection 对象。
若要执行 命令,请通过关联 Connection 对象上的 Name 属性调用它。 命令 必须将其 ActiveConnection 属性设置为 Connection 对象。 如果 Command 具有参数,则将其值作为参数传递给方法。
如果在同一连接上执行两个或多个 Command 对象,并且 Command 对象是具有输出参数的存储过程,则会发生错误。 若要执行每个 Command 对象,请使用单独的连接或断开所有其他 命令 对象与连接的连接。
Parameters 集合是 Command 对象的默认成员。 因此,以下两个代码语句是等效的。
objCmd.Parameters.Item(0)
objCmd(0)
- Command 对象不适合编写脚本。
本节包含以下主题。