Command 对象
Command 对象定义了从一个数据库连接中获取何种数据的详细信息。Command 对象既可以基于一个数据库对象(例如:一个表、视图、存储过程或同义词),也可以基于一个结构化查询语言(SQL)查询。您也可以创建 Command 对象之间的关系来以层次结构的形式获取一组相关的数据(请参阅 Command 层次结构)。
注意 一个 Command 对象要想有效,必须和一个 Connection 对象相关联。
如果一个 Command 对象返回数据,则它是“记录集返回”,返回的结果可以通过使用 DataEnvironment 对象中的一个 Recordset 对象进行访问。然而,如果一个 Command 对象不返回数据(例如,执行一个更新的存储过程或 SQL 文本),则它是“非记录集返回”。数据环境设计器自动地识别 Command 是否是记录集返回。您可以通过使用“Command 属性”对话框中“高级”选项卡的“返回的记录集”复选框覆盖这个设置。
在运行时,您如何访问 Command 对象取决于 Command 对象是否是记录集返回。如果 Command 对象是记录集返回,您既可以将 Command 对象作为 DataEnvironment 对象的一个属性,也可以作为它的一个方法来进行访问。如果它是非记录集返回,您的 Command 对象只能作为一个方法来访问。详细信息请参阅同您的应用程序一起使用数据环境。
创建一个 Command 对象任何时候都可以使用 Add Command 函数,并且它与其它对象的存在与否无关。然而,一个没有与 Connection 对象关联的 Command 对象是无效的。
如果一个 Connection 对象在添加过程中可以被从当前焦点中标识出来,则 Command 对象的 ActiveConnection 属性就被设置到这个 Connection 对象。如果一个 Connection 对象不能被标识,在您将它与一个连接关联之前,Command 对象是无效的。
要添加一个 Command 对象,请
在数据环境设计器工具栏中单击“添加命令”。
-或–
右键单击一个 Connection 对象或您的数据环境设计器,并从快捷方式菜单中选择“添加命令”。
一旦一个 Command 对象被添加,数据环境的“概要型”视图就显示新的 Command 对象。这个对象的缺省名字是“Command”和加在后面的一个数字,例如:Command1。
使用下面的过程来指定 Command 对象属性。
要指定 Command 对象的属性,请按照以下步骤执行,
右键单击Connection 对象并选择“属性”访问“Command 属性”对话框。
单击“通用”选项卡,并按照如下设置,
项目
目的
Command Name
将您的数据库对象的缺省“命令名称”改为一个更有意义的名字。例如,如果 Command 对象是基于一个叫做“customers”的表格,您可能想将 Command1 改为“Customers”。
Connection
如果 Command 对象是从一个 Connection 对象的快捷方式菜单中创建的,Connection 名字被自动地设置。但是,您可以更改这个Connection。
注意 每一个 Command 对象要想有效,必须与一个 Connection 对象相关联。
Database Object
从下拉列表中选择数据库对象的类型。类型可以是一个存储过程、同义词、表或视图。
Object Name
从下拉列表中选择一个对象的名字。列出的对象来自连接,并且与选择的“数据库对象”类型匹配。
-或-

SQL Statement
如果选择该项作为您的数据源,在“SQL 语句”框中输入一个对您数据库有效的 SQL 查询。
-或-
要建立此查询,单击“SQL 生成器...”启动查询设计器。
如果 Command 对象是基于一个参数化的查询或一个存储过程,它可能有一个参数集合。要设置参数属性,请在“Command 属性”对话框中单击“参数”选项卡。
使用“关联”、“分组”和“合计”选项卡定义关系,并组织 Recordset 中包含的数据。详细信息请参阅 Command 层次结构。
单击“Command 属性”对话框中的“高级”选项卡设置属性,这些属性改变在运行时获取或操作数据的方式。在这个选项卡中,设置高级属性,这些高级属性使您的数据环境可以对 Command 对象属性和它产生的 Recordset 对象进行控制。
单击“确定”将此属性应用于新的 Command 对象,并关闭对话框。
如果一个记录集返回 Command 对象被成功地创建,并且“选项...”对话框中的“显示字段”选项被选中,您可以从数据环境设计器的“概要型”视图中单击展开位图(+)来查看字段的列表。如果没有显示一个字段,原因可能是一个空的 Recordset、一个无效的 Command 对象或一个无效的 Connection。
自定义一个 Command 对象的 Parameter 对象如果一个 Command 对象是基于一个参数化的查询或一个带有参数的存储过程,则 Command 对象有一个 Parameters 集合。您可能希望通过更改数据类型或使名字更有描述性来自定义集合中包含的 Parameter 对象。详细信息请参阅 ADO 参数。
更改相关联的 Parameter 对象的属性下面的过程描述了您如何更改与一个 Command 对象相关联的 Parameter 对象的属性。
要更改与一个 Command 对象相关联的 Parameter 对象的属性,请按照以下步骤执行,
右键单击您想自定义的 Command 对象,然后从快捷方式菜单中选择“属性”。
从“参数”选项卡的“参数”列表框中选择一个 Parameter 对象,然后设置下面的属性,
项目
目的
Name
为选择的 Parameter 对象提供一个唯一的、有意义的名字。
Direction
指定这是一个输入参数还是输出参数,或者既是输入又是输出参数,或者参数是否是过程的返回值。
DataType
指定 Parameter 对象被转换成的数据类型。
Precision
指定最大的数字位数或精度。
Scale
指定小数点右边的最大位数。
Size
指定最大的长度,以字节为单位。
Host Data Type
指定当这个 Parameter 对象被主机应用程序引用时使用的数据类型。更改这个设置将影响为主机建立类型库信息中使用的数据类型。
Required
指定当 Command 对象被执行时参数值是否是必需的。
注意 如果执行 Command 对象时,一个必需的参数没有被设置,command 将失败。
Value
指定在运行时使用的缺省值(除非通过编程提供一个值),如果必要的话,假如必须执行 Command 对象获取字段信息,则指定设计时使用的值。
单击“确定”应用此参数属性来选择 Command 对象,并退出该对话框。
详细信息请参阅 ADO 参数。
从一个“数据视图”中拖动到您的数据环境您可以通过从“数据视图”窗口拖动到您的数据环境设计器自动地创建 Command 对象。由“数据视图”中列出的表、视图或存储过程来创建 Command 对象是一种简单和高效的方法。如果与被放下的 Command 对象相关联的 Connection 在数据环境中不存在,则自动创建一个 Connection 对象。
从存储过程创建多个 Command 对象通过使用“插入存储过程...”对话框,您可以在您的数据环境设计器中从存储过程创建多个 Command 对象。
要插入多个存储过程,请按照以下步骤执行,
在数据环境设计器工具栏中单击“插入存储过程...”。
-或–
右键单击一个 DataEnvironment 或 Connection 对象并从快捷方式菜单中选择“插入存储过程...”。
在“插入存储过程...”对话框中,使用箭头从“可用”列表中移动一个或多个存储过程到“添加”列表。
使用 > 每次移动一个存储过程到“添加”列表,或使用 >> 一次移动所有的存储过程。使用 < 每次从“添加”列表中删除一个存储过程,或使用 << 一次删除所有的存储过程。
一旦存储过程出现在“添加”列表中,可以单击“插入”将它们添加到您的数据环境中。对每一个存储过程将创建一个新的 Command 对象。
注意 Command 对象的名字缺省为存储过程的名字。
单击“关闭”退出对话框。