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版本。