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