84命令对象 在8.12节中曾经提到命令对象负责对 数据库提供请求,也就是说它定义了将对 数据源执行的指定命令,这些命令可以是 SQL语句、表或存储过程。命令对象提供 了一种简单有效的方法来处理查询或存储 过程,通过该对象可以方便地查询数据库 并返回记录集,并对该记录集执行有关操
8.4 命令对象 在8.12节中曾经提到命令对象负责对 数据库提供请求,也就是说它定义了将对 数据源执行的指定命令,这些命令可以是 SQL语句、表或存储过程。命令对象提供 了一种简单有效的方法来处理查询或存储 过程,通过该对象可以方便地查询数据库 并返回记录集,并对该记录集执行有关操 作
84.1命令对象的属性和方法 命令对象既可以利用已经创建的连接对象 来创建,也可以不用先创建连接对象就直接使 用命令对象,只需设置命令对象的 Active connection属性为一个连接字串即可,这 时ADO将自动创建一个隐含的连接对象,但不 会分配一个对象变量给它。因此如果多个命令 对象要使用相同的连接,则应明确地创建并打 开一个连接对象,这样就可将连接对象赋给该 变量
8.4.1 命令对象的属性和方法 命令对象既可以利用已经创建的连接对象 来创建,也可以不用先创建连接对象就直接使 用 命 令 对 象 , 只 需 设 置 命 令 对 象 的 ActiveConnection属性为一个连接字串即可,这 时ADO将自动创建一个隐含的连接对象,但不 会分配一个对象变量给它。因此如果多个命令 对象要使用相同的连接,则应明确地创建并打 开一个连接对象,这样就可将连接对象赋给该 变量
1.创建命令对象 使用命令对象之前,必须先用 Server Createobject方法创建该对象。可以使用下 列脚本创建命令对象: %创建命令对象 Set comm=Server Createobject("ADODB. Command") 2.命令对象的属性 通常在使用命令对象之前需要对命令对象的 属性进行必要的设置,以便对该对象进行相应的 操作。下面分别介绍命令对象的属性
1. 创建命令对象 使 用 命 令 对 象 之 前 , 必 须 先 用 Server.Createobject方法创建该对象。可以使用下 列脚本创建命令对象: 2. 命令对象的属性 通常在使用命令对象之前需要对命令对象的 属性进行必要的设置,以便对该对象进行相应的 操作。下面分别介绍命令对象的属性
(1) Activeconnection属性 在执行命令对象的命令之前,必须先设置 ActiveConnection属性,否则将发生错误。 Activeconnection属性设置或返回命令对象所 使用的连接对象。可以将 Active onnection属性设 置为一个已经存在并打开的连接对象,也可以为 其定义一个连接使用的有效字串 (2) CommandText属性 将命令对象与连接对象关联后,可以使用 CommandText属性设置数据库査询字串,并在执 行命令对象的 Execute方法时将该字串提交给数据 提供者处理
(1)ActiveConnection属性 在执行命令对象的命令之前,必须先设置 ActiveConnection属性,否则将发生错误。 ActiveConnection属性设置或返回命令对象所 使用的连接对象。可以将ActiveConnection属性设 置为一个已经存在并打开的连接对象,也可以为 其定义一个连接使用的有效字串。 (2)CommandText属性 将命令对象与连接对象关联后,可以使用 CommandText属性设置数据库查询字串,并在执 行命令对象的Execute方法时将该字串提交给数据 提供者处理
通常该属性为SQL语句,但也可以是一个表名 或是一个 StoredProcedure名。 设置了 Commandtext属性后,就可调用命令对 象的 Execute方法来执行由 CommandText属性值所 指定的操作。 (3) Command type属性 CommandType属性定义如何使用 CommandText,分别为 adCmdText, adCmdTable, adCmdStoredProc及 adCmdUnknown。与前面在讲 连接对象的 Execute方法中的相应的选项的含义相 同
通常该属性为SQL语句,但也可以是一个表名 或是一个StoredProcedure名。 设置了CommandText属性后,就可调用命令对 象的Execute方法来执行由CommandText属性值所 指定的操作。 (3)CommandType属性 CommandType 属 性 定 义 如 何 使 用 CommandText,分别为adCmdText,adCmdTable, adCmdStoredProc及adCmdUnknown。与前面在讲 连接对象的Execute方法中的相应的选项的含义相 同
设置该属性可优化 CommandText属性的计算。 如果没有设置该属性值,则ADO因不知 CommandText属性值是SQL语句、表还是存储过 程,需要花时间去识别而影响系统的执行速度。 (4) CommandTimeout属性 该属性定义命令对象终止并产生错误之前需 等待的时间,默认为30秒 (5) Prepared属性 Prepared属性决定数据提供者在首次执行命 令对象前是否保存命令的编译版本,该属性是 个布尔型值
设置该属性可优化CommandText属性的计算。 如果没有设置该属性值,则ADO因不知 CommandText属性值是SQL语句、表还是存储过 程,需要花时间去识别而影响系统的执行速度。 (4)CommandTimeOut属性 该属性定义命令对象终止并产生错误之前需 等待的时间,默认为30秒。 (5)Prepared属性 Prepared属性决定数据提供者在首次执行命 令对象前是否保存命令的编译版本,该属性是一 个布尔型值
当 Prepared属性设置为Tue时,将会把首次执 行 CommandE属性中指定查询的结果编译并保存 下来,在后继命令的执行中,数据提供者将直接使 用已编译好的命令版本,从而提高执行性能。 如果该属性设置为 False,则将直接执行命令对 象而不创建编译版本 在实际使用中有些数据提供者可能不支持命令 的预编译,此时当该属性设置为True时,ADO将返 回错误 3.命令对象的方法 (1) Create Parameter方法:用来产生一个新的 Parameter对象,并在执行之前加到命令对象的 Parameters集合中。返回值为创建的 Parameter对象
当Prepared属性设置为True时,将会把首次执 行CommandText属性中指定查询的结果编译并保存 下来,在后继命令的执行中,数据提供者将直接使 用已编译好的命令版本,从而提高执行性能。 如果该属性设置为False,则将直接执行命令对 象而不创建编译版本。 在实际使用中有些数据提供者可能不支持命令 的预编译,此时当该属性设置为True时,ADO将返 回错误。 3. 命令对象的方法 (1)CreateParameter方法:用来产生一个新的 Parameter对象,并在执行之前加到命令对象的 Parameters集合中。返回值为创建的Parameter对象
Parameter/对象表示传递给SQL语句或存储过程的 个或多个参数。 Create Parameter方法的语法格式如下: Set Param=comm Create Parameter(name, type, direction, size, value) 其中的各个参数均为可选项,具体说明如下: Name:是一个字符串,指定 Parameter对象的名称 该名称为参数的引用名,在后面引用参数的值时 会有用。 pe:是一个长整型值,指定 Parameter对象的数 据类型。例如整数为 adInteger
Parameter对象表示传递给SQL语句或存储过程的一 个或多个参数。 CreateParameter方法的语法格式如下: Set Param=comm.CreateParameter(name,type,direction,size,value) 其中的各个参数均为可选项,具体说明如下: •Name:是一个字符串,指定Parameter对象的名称, 该名称为参数的引用名,在后面引用参数的值时 会有用。 •Type:是一个长整型值,指定Parameter对象的数 据类型。例如整数为adInteger;
Direction:是一个长整型值,指定参数是输入还 是输出,相应的值为: adParamInput(指示输入 参数)、 adParam Output(指示为输出参数) adParam Return value(指示为返回值) adParamUnknown(指示参数类型无法确定) adParamInputOutput(指示为输入/输出参数) °Size:是一个长整型值,指定参数的最大长度或 最大的值 Value:是一个变体型值,指定参数的值 可以将各个选项分开来写,例如下面的两种写 法是等价的
•Direction:是一个长整型值,指定参数是输入还 是输出,相应的值为:adParamInput(指示输入 参数)、adParamOutput(指示为输出参数)、 adParamReturnValue( 指 示 为 返 回 值 ) 、 adParamUnknown(指示参数类型无法确定)、 adParamInputOutput(指示为输入/输出参数); •Size:是一个长整型值,指定参数的最大长度或 最大的值。 •Value:是一个变体型值,指定参数的值。 可以将各个选项分开来写,例如下面的两种写 法是等价的
Set param= comm. CreateParameter(name, type, direction, size, value 或 Set param=comm. CreateParameter(name, type, direction, size) param value-value 下面的方法其灵活性更大。大家请注意,在 使用了 Create Parameter方法后只是建立了新的 parameter对象,还需使用 Parameter对象的 Append 方法将该参数传递给命令对象 (2) Execute方法 调用命令对象的 Execute方法用来执行由
Set param= comm.CreateParameter(name,type,direction,size,value ) 或 Set param= comm.CreateParameter(name,type,direction,size) param.value=value 下面的方法其灵活性更大。大家请注意,在 使 用 了 CreateParameter 方 法 后 只 是 建 立 了 新 的 parameter对象,还需使用Parameter对象的Append 方法将该参数传递给命令对象。 (2)Execute方法 调用命令对象的Execute方法用来执行由