ADO Execute 方法
定义和用法
Execute 方法可执行指定查询、SQL 语句、存储过程或提供者特有的文本。
如果 CommandText 参数指定按行返回的查询,那么执行产生的任何结果都将存储在新的 Recordset 对象中。如果此命令不是以行返回的查询,提供者将返回关闭的 Recordset 对象。
注释:返回的 Recordset 对象始终是只读的、仅向前的游标。
提示:如果需要具有更多功能的 Recordset 对象,应首先创建 Recordset 对象,设置所需属性,然后使用 Recordset 对象的 Open 方法执行查询并返回所需的游标类型。
语法:对于以行返回的命令字符串:
Set objrs=objconn.Execute(commandtext,ra,options)
语法:对于不是以行返回的命令字符串:
objconn.Execute commandtext,ra,options
参数 | 描述 |
---|---|
commandtext | 必需。要执行的 SQL 语句、表名称、存储过程、URL 或提供者特有的文本。 |
ra | 可选。受查询影响的记录数目。 |
options | 可选。设置提供者应当如何设置计算 commandtext 参数。可以是一个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值。默认是 adCmdUnspecified。 |
实例
<% sql="SELECT companyname FROM Customers" Set rs=conn.Execute(sql) %>
CommandTypeEnum 值
常数 | 值 | 描述 |
---|---|---|
adCmdUnspecified | -1 | 不指定命令类型的参数。 |
adCmdText | 1 | 按命令或存储过程调用的文本定义计算 CommandText。 |
adCmdTable | 2 | 按表名计算 CommandText,该表的列全部是由内部生成的 SQL 查询返回的。 |
adCmdStoredProc | 4 | 按存储过程名计算 CommandText。 |
adCmdUnknown | 8 | 默认值。指示 CommandText 属性中命令的类型未知。 |
adCmdFile | 256 | 按持久存储的 Recordset 的文件名计算 CommandText。仅与 Recordset.Open 或 Requery 使用。 |
adCmdTableDirect | 512 | 按表名计算 CommandText,该表的列被全部返回。仅与 Recordset.Open 或 Requery 使用。如需使用 Seek 方法,Recordset 必须通过 adCmdTableDirect 打开。该值不能与 ExecuteOptionEnum 值 adAsyncExecute 结合。 |
ExecuteOptionEnum 值
常量 | 值 | 描述 |
---|---|---|
adOptionUnspecified | -1 | 指示未指定命令。 |
adAsyncExecute | 0x10 | 指示命令将异步执行。此值不能与 CommandTypeEnum 值 adCmdTableDirect 结合。 |
adAsyncFetch | 0x20 | 指示在 CacheSize 属性中指定的初始数量以后的剩余行将被异步检索。 |
adAsyncFetchNonBlocking | 0x40 |
指示检索时主线程从不会阻塞。如果未检索到所请求的行,当前行将自行移动到文件结尾。 如果从包含持久存储 Recordset 的 Stream 中打开 Recordset,那么 adAsyncFetchNonBlocking 将不起作用;该操作将同步进行并发生阻塞。 当 adCmdTableDirect 选项被用于打开 Recordset 时,adAsynchFetchNonBlocking 不起作用。 |
adExecuteNoRecords |
指示命令文本是不返回行的命令或存储过程(例如,仅插入数据的命令)。如果检索到任何行,它们将被放弃且不返回。通常与 CommandTypeEnum 值 adCmdText 或 adCmdStoredProc 组合在一起。 adExecuteNoRecords 只能作为可选参数传递给 Command 或 Connection Execute 方法。把它用作 Command 对象的 CommandType 属性的参数将产生错误。 |
|
adExecuteStream | 指示命令执行的结果应作为流来返回。adExecuteStream 只能作为可选参数传递给 Command Execute 方法。 | |
adExecuteRecord | 指示 CommandText 是返回单一行的命令或存储过程,此行应作为 Record 对象来返回。 |