Command对象

使用Command对象，你可以执行带参数的存储过程，SQL查询，SQL语句。你可以使用Command对象接收Recordset对象。

<% Set MagicCMD = Server.CreateObject(

“ADODB.Command”) %>

集合

Parameters

Parameters集合是Parameter对象的集合（参看后面的“Parameter对象”）。Parameter对象用于执行带参数的SQL查询或向一SQL存储过程传递或接收参数。

Properties

Properties集合是Property对象的集合（参看后面的“Preperty对象”）。不同的数据提供者比如Microsoft SQL Server和Microsoft Access在Command对象的Properties集合里具有不同的属性。这些属性影响Command对象的执行方式。

属性

CreateParameter([Name] , [type] , [Direction] , [Size] , [Value] )

创建Command对象要使用的新参数。Name是新参数的名称。Type是该参数的数据类型。你可以使用下表所示的任何数据类型：

常数 | 值 | 描述
adBigInt | 20 | 8字节有符号整数
adBinary | 128 | 二进制值
adBoolean | 11 | 布尔值
adBSTR | 8 | Null-中断字符串(Unicode)
adChar | 129 | 字符串值
adCurrency | 6 | 货币值
adDate | 7 | 日期值
adDBDate | 133 | 日期值（yyyymmdd）
adDBTime | 134 | 时间值(hhmmss)
adDBTimeStamp | 135 | 日期时间值（yyyymmddhhmmss）
adDecimal | 14 | 具有固定的精度和范围的扩展数字型。
adDouble | 5 | 双精度浮点数值
adEmpty | 0 | 空值
adError | 10 | 32位错误码
adGUID | 72 | 全球唯一的标志码
adIDispatch | 9 | 指向一个OLE对象Idispatch的指针
adInteger | 3 | 4字节有符号整数
adIUnknown | 13 | 指向一个OLE对象Iunkown的指针
adLongVarBinary | 205 | 长二进制值
adLongVarChar | 201 | 长字符串值
adLongVarWChar | 203 | 长NULL－中断字符串值
adNumeric | 131 | 具有固定的精度和范围的扩展数字型。
adSingle | 4 | 单精度浮点值
adSmallInt | 2 | 2字节有符号整数
adTinyInt | 16 | 1字节有符号整数
adUnsignedBigInt | 21 | 8字节无符号整数
adUnsignedInt | 19 | 4字节无符号整数
adUnsignedSmallInt | 18 | 2字节无符号整数
adUnsignedTinyInt | 17 | 1字节无符号整数
adUserDefined | 132 | 未定义变量
adVarBinary | 204 | 二进制值
adVarchar | 200 | 字符串值
adVariant | 12 | OLE自动变量
adVarWchar | 202 | NULL-中断Unicode字符串
adWchar | 130 | NULL-中断Unicode字符串

Direction确定参数是输入参数，输出参数或存储过程的返回值，下表描述了所有你可以使用的Direction值：

常数 | 值 | 描述
adParamInput | 1 | 输入参数（缺省值）
adParamOutput | 2 | 输出参数
adParamInputOutput | 3 | 输入/输出参数
adParamReturnValue | 4 | 返回值

Size是参数的最大长度，以字节或字符为单位。Value是参数的值。

Execute [RecordAffected] , [Parameters] , [Options] 或

Execute （[RecordAffected] , [Parameters] , [Options]）

执行包含在CommandText属性中的SQL查询，SQL语句或SQL存储过程。当要返回数据集时，使用带括号的第二中Execute方法。

在该命令执行后，RecordAffected变量内包含该命令所影响的记录的数目。Parameters是参数数组，可以覆盖以前添加到Command对象中的变量。使用Options,你可以使该命令执行的更有效，因为你利用发送给数据提供者（比如，SQL Server）有关要执行命令的类型。Options的值如下：

常数 | 描述
adCmdText | 把CommandText作为一个命令的文本定义执行，比如SQL语句。
adCmdTable | 把CommandText作为表的名称执行。
adCmdStoreProc | 把CommandText作为存储过程执行。
adCmdUnknown | 未知的命令（缺省值）。

Open [ConnectionString],[UserID],[Password]

打开一个到数据源的连接。ConnectionString是数据源的名称（DSN）或者是包含以分号隔开的参数和值对的连接字符串。比如下面就是适用于SQL Server的例子：

dsn=MyDatabase;uid=MyLoginName;pwd=MyPassword

你可以使用在下表内的参数和值对：

参数 | 值
Provider | 数据提供者的名称
Data Source | 数据源的名称（比如，一个SQL Server的ODBC数据源）
User | 在打开数据连接时所用的用户名
Password | 在打开数据连接时所用的密码
File Name | 已经预设好连接信息的与提供者相关的文件名

UserId是在打开数据连接时所要用的用户名。Password是在打开数据连接时所要用的密码。

OpenSchema(queryType,[Criteria])

用于返回有关数据库整体结构的信息（比如，它包含的Table和Column）。这些概要信息存入了Recordset对象中。QueryType是要执行的概要查询（如下表所示）。Criteria是在概要查询上的一系列限制。

QueryType | Criteria
adSchemaAsserts | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME
adSchemaCatalogs | CATALOG_NAME
adSchemaCharacterSets | CHARACTER_SET_CATALOG CHARACTER_SET_SCHEMA CHARACTER_SET_NAME
adSchemaCheckConstraints | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME
adSchemaCollation | COLLATION_CATALOG COLLATION_SCHEMA COLLATION_NAME
adSchemaColumnDomainUsage | DOMAIN_CATALOG DOMAIN_SCHEMA DOMAIN_NAME COLUMN_NAME
adSchemaColumnPrivileges | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME GRANTOR GRANTEE
adSchemaColumns | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME
adSchemaConstraintColumnUsage | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME
adSchemaConstraintTableUsage | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME
adSchemaForeignKeys | PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME FK_TABLE_CATALOG FK_TABLE_SCHEMA FK_TABLE_NAME
adSchemaIndexs | TABLE_CATALOG TABLE_SCHEMA INDEX_NAME TYPE TABLE_NAME
adSchemaKeyColumnUsage | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME COLUMN_NAME
adSchemaPrimaryKeys | PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME
adSchemaProcedureColumns | PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME COLUMN_NAME
adSchemaProcedureParameters | PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PARAMETER_NAME
adSchemaProcedures | PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PARAMETER_TYPE
adSchemaProviderTypes | DATA_TYPE BEST_MATCH
adSchemaReferentialConstraints | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME
adSchemaSchemata | CATALOG_NAME SCHEMA_NAME SCHEMA_OWNER
adSchemaSQLLanguages | 没有
adSchemaStatistics | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME
adSchemaTableConstraints | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
adSchemaTablePriviledge | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME GRANTOR GRANTEE
adSchemaTables | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
adSchemaTranslations | TRANSLATION_CATALOG TRANSLATION_SCHEMA TRANSLATION_NAME
adSchemaUsagePrivileges | OBJECT_CATALOG OBJECT_SCHEMA OBJECT_NAME OBJECT_TYPE GRANTOR GRANTEE
adSchemaViewColumnUsage | VIEW_CATALOG VIEW_SCHEMA VIEW_NAME
adSchemaViewTableUsage | VIEW_CATALOG VIEW_SCHEMA VIEW_NAME
adSchemaViews | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME

RollbackTrans

防止在当前事务事件中的所有数据库的变化得以进行。一般在调用BeginTrans方法后执行。

属性

Attributes

指明事务过程的属性。下表中的常数可以读或设置。

常数 | 描述
adXactCommitRetaining | 指明在调用CommitTrans方法时会自动开始一个新的事务过程。
adXactAbortRetaining | 指明在调用RollbackTrans方法时会自动开始一个新的事务过程。

CommandTimeOut

指明所有依靠数据连接的对象等待数据提供者回应的时间长度，以秒为单位。缺省时该属性的值为30。如果你设置该属性的值为0，ADO会永远的等待服务器的回应。

ConnectionString

指明数据源（DSN）的名称或者包含以分号隔开的参数和值对的连接字符串。比如，下面的例子适用于SQL Server。

dsn=MyDatabase;uid=MyLoginName;pwd=MyPassword

你可以在连接字符串中使用在下表所示的参数和值对。

参数 | 值
Provider | 数据提供者的名称
Data Source | 数据源的名称（比如，一个SQL Server的ODBC数据源）
User | 在打开数据连接时所用的用户名
Password | 在打开数据连接时所用的密码
File Name | 已经预设好连接信息的与提供者相关的文件名

ConnectionTimeOut

指明Connection对象试着建立一个到数据提供者的连接时会等待的时间，以秒为单位。缺省时该属性的值为15秒，如果你设置该值为0，Connetion对象将会永久等待连接。

CursorLocation

指明使用那个游标库。该属性具有下表所示的值：

常数 | 描述
adUseClient | 使用客户端的游标
adUseServer | 使用服务器或驱动器的游标（缺省值）。

DefaultDatabase

指明连接时使用的缺省数据库。当已经指定缺省数据库时，你就不必在所有的SQL字符串内包含数据库名称。

IsolationLevel

指明连接的隔离等级。只有在调用BeginTrans方法后，该属性的新改变值才有效。该属性具有下表的值：

常数 | 描述
adXactUnspecified | 当数据提供者使用的隔离等级与你指定的不同时，该属性返回该值。
adXactChaos | 指明你不能覆盖目前正由其他的隔离事务过程使用的改变。
adXactBrowse | 指明你可以查看在其他事务过程中还没有确认的变化。
adXactReadUncommitted | 和adXactBrowse一样。
adXactCursorStability | 指明你不能查看在其他事务过程中还没有确认的变化（缺省值）。
adXactReadComitted | 和adXactCursorStability一样
adXactRepeatableRead | 除了允许重新查询以获得新的记录集之外，和adXactCursorStability一样。
adXactIsolated | 指明所有的事务过程都与其他事务过程隔离。
adXactSerialized | 同adXactIsolated。

Mode

指明在连接中改变数据可用的权限。该属性具有如下表所示的值：

常数 | 描述
adModeUnknown | 未定（缺省值）。
adModeRead | 只读权限。
adModeWrite | 只写权限。
adModeReadWrite | 可读、可写权限。
adModeShareDenyRead | 防止其他人用读权限打开连接。
adModeShareDenyWrite | 防止其他人用写权限打开连接。
adModeShareExclusive | 防止其他人用读或写权限打开连接。
adModeShareDenyNone | 防止其他人用任何权限打开连接。

Provider

指明连接的数据提供者名称。缺省时，该属性的值为MSDASQL（Microsoft OLEDB ODBC 数据提供者）。

State

在连接对象使用异步传输（用adRunAsync）时使用。返回连接对象当前的状态。这个属性具有下表所示的值。

常数 | 描述
adStateClosed | 对象已经关闭。
adStateOpen | 对象处于打开状态。

Version

以字符串形式返回当前的ADO版本。