conn.Execute()用法详细介绍

 set rs=joekoe_cms.exec(sql,1)

对这个语句的详细解释说明:
joekoe_cms数据库连接对象的一个实例。因此我们应该解释一下conn.exec(sql,1)
而exec其实是Execute的简写形式。因此我们应该看下Execute()函数的用法,从
网易学院上看到如下这段文字。
Execute 方法 (ADO Connection)
执行指定的查询、SQL 语句、存储过程或特定提供者的文本等内容。

语法
对于不按行返回的命令字符串:
connection.Execute CommandText, RecordsAffected, Options
对于按行返回的命令字符串:
Set recordset = connection.Execute (CommandText, RecordsAffected, Options)

返回值
返回 Recordset 对象引用。

参数
CommandText   字符串,包含要执行的 SQL 语句、表名、存储过程或特定提供者的文本。
RecordsAffected    可选,长整型变量,提供者向其返回操作所影响的记录数目。
Options    可选,长整型值,指示提供者应如何为 CommandText 参数赋值,可为下列值之一。

常量 说明
adCmdText 指示提供者应将 CommandText 赋值为命令的文本定义。
adCmdTable 指示 ADO 应生成 SQL 查询以便从 CommandText 命名的表中返回所有行。
adCmdTableDirect 指示提供者应从 CommandText 命名的表中返回所有行。
adCmdTable 指示提供者应将 CommandText 赋值为表名。
adCmdStoredProc 指示提供者应将 CommandText 赋值为存储过程。
adCmdUnknown 指示 CommandText 参数中的命令类型未知。
adExecuteAsync 指示命令应该异步执行。
adFetchAsync 指示 CacheSize 属性指定的初始数量之后的行应异步提取。
本列表中前 4 个常量的详细说明请参见 CommandType 属性。

说明
使用 Connection 对象的 Execute 方法,可执行任何在指定连接的 CommandText 参数中传送给方法的查询。如果 CommandText 参数指定按行返回的查询,执行产生的任何结果将

存储在新的 Recordset 对象中。如果命令不是按行返回的查询,则提供者返回关闭的 Recordset 对象。

返回的 Recordset 对象始终为只读、仅向前的游标。如需要具有更多功能的 Recordset 对象,应首先用所需的属性设置创建 Recordset 对象,然后使用 Recordset 对象的 Open

方法执行查询并返回所需游标类型。

CommandText 参数的内容对提供者是特定的,并可以是标准的 SQL 语法或任何提供者支持的特殊命令格式。

该操作完成后将产生 ExecuteComplete 事件。

下奶我们看到了exec的函数原型已经说明。因此我们知道了conn.exec(sql,1)中的数字1其实是赋给形参Options的值。

根据上面所说的commandType属性我们就能清楚的知道1的含义了。。。

ADO CommandType 属性

The CommandType property sets or returns a CommandTypeEnum value that defines the type of the Command object. Default is adCmdUnknown.
CommandType属性的作用是:设置或返回用于定义指令对象类型的CommandTypeEnum值。默认值为:adCmdUnknown。

If you do not specify the type, ADO will need to contact the provider to determine the type of the command. However, if you do specify the type, ADO will be

able to process the command faster. 
如果你没有指定类型,那么ADO将会与技术提供对象[provider]进行信息交互,以确定指令的类型。然而,如果你已经指定了类型,ADO将会更快地执行指令对象。

Syntax
语法
objcommand.CommandType

Example
案例
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"set comm=Server.CreateObject("ADODB.Command")
comm.CommandText="orders"
comm.CommandType=adCmdTable
response.write(comm.CommandType)conn.close
%>


--------------------------------------------------------------------------------

CommandTypeEnum Values
Constant(常量)           Value(值)         Description(描述)
adCmdUnspecified          -1               Does not specify the command type argument.
                                           不指定指令类型自变量
adCmdText                  1               Evaluates CommandText as a textual definition of a command or stored procedure call.
                                           指示提供者应该将Source作为命令的文本定义来计算。
adCmdTable                 2               Evaluates CommandText as a table name whose columns are all returned by an internally generated SQL query.
                                           指示ADO生成SQL查询以便从在Source中命名的表中返回所有行
adCmdStoredProc            4               Evaluates CommandText as a stored procedure name.
                                           将CommandText作为一个已存的程序名称
adCmdUnknown               8               Default. Indicates that the type of command in the CommandText property is not known.
                                           默认值。指定未知的CommandText属性命令
adCmdFile                 256              Evaluates CommandText as the file name of a persistently stored Recordset. Used with Recordset.
               Open or Requery only.
        指示应从在Source中命名的文件中恢复保留(保存的)Recordset。它仅能与Recordset.Open 或 Requery 指令一起使用
adCmdTableDirect          512      Evaluates CommandText as a table name whose columns are all returned. Used with Recordset.
                                           Open or Requery only. To use the Seek method, the Recordset must be opened with adCmdTableDirect.
                                           This value cannot be combined with the ExecuteOptionEnum value adAsyncExecute.
                                           指示提供者更改从在 Source 中命名的表中返回所有行 / 将CommandText作为一个表的名称(该表的列全部是通过内部的SQL查询 

          语句返回的)。它仅适用Recordset.Open 或 Requery 指令;如果需要使用查找方式,那么Recordset必须以adCmdTableDirect打 

       开。这个值不能与ExecuteOptionEnum值 adAsyncExecute一起使用
 

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页