ADO) (命令对象

适用于:Access 2013、Office 2013

定义要对数据源执行的特定命令。

备注

使用 Command 对象可查询数据库并通过 Recordset 对象返回记录,执行批量操作或处理数据库的结构。 根据提供程序功能的不同,引用某些 Command 集合、方法或属性时,可能生成错误。

使用 Command 对象的集合、方法和属性,可以执行以下操作:

  • 使用 CommandText 属性可定义命令的可执行文本(如一条 SQL 语句)。

  • 使用 Parameter 对象和 Parameters 集合可定义参数化查询或存储过程参数。

  • 使用 Execute 方法可执行命令并返回 Recordset 对象(如果适用)。

  • 在执行命令之前,使用 CommandType 属性指定命令的类型可优化性能。

  • 使用 Prepared 属性可控制提供程序是否在执行命令之前保存命令的预备(或已编译)版本。

  • 使用 CommandTimeout 属性可设置提供程序等待命令执行的秒数。

  • 通过设置 Command 对象的 ActiveConnection 属性,可将打开的连接与该对象关联。

  • 设置 Name 属性将 Command 对象标识为相关联的 Connection 对象的方法。

  • Command 对象传递给 Recordset 对象的 Source 属性可获取数据。

  • 使用 Properties 集合可访问特定于提供程序的属性。

注意

[!注释] 若要在不使用 Command 对象的情况下执行查询,可将查询字符串传递给 Connection 对象的 Execute 方法或 Recordset 对象的 Open 方法。 但是,如果要持久保留命令文本并重新执行它,或使用查询参数,则需要 Command 对象。

若要独立于以前定义的 Connection 对象创建 Command 对象,请将 Command 对象的 ActiveConnection 属性设置为有效的连接字符串。 ADO 仍然创建 Connection 对象,但不将该对象分配给对象变量。 但是,如果将多个 Command 对象与同一连接关联,则应显式创建和打开 Connection 对象;这样就会将 Connection 对象分配给对象变量。 如果不将 Command 对象的 ActiveConnection 属性设置为该对象变量,ADO 就会为每个 Command 对象创建一个新的 Connection 对象,即便使用相同的连接字符串也是如此。

若要执行 Command ,只需通过其关联的 Connection 对象的 Name 属性调用它即可。 CommandActiveConnection 属性必须设置为 Connection 对象。 如果 Command 具有参数,请将它们的值作为参数传递给方法。

在同一连接上执行两个或多个 Command 对象时,如果任一 Command 对象是具有输出参数的存储过程,将产生错误。 若要执行每个 Command 对象,可使用单独的连接或将其他所有 Command 对象与该连接断开。

Parameters 集合是 Command 对象的默认成员。 因此,以下两个代码语句是等效的。