ADO Command 物件詳述

使用 Command 物件,你可以執行 SQL 語句。你可以使用 Command 物件接收 Recordset 物件。

<% Set MagicCMD = Server.CreateObject(“ADODB.Command”) %>

集合

Parameters

Parameters 集合是 Parameter 物件的集合。Parameter 物件用於執行帶參數的 SQL 查詢或向一 SQL 存儲過程傳遞或接收參數。

Properties

Properties 集合是 Property 物件的集合。不同的資料提供者比如 MS SQL Server 和 MS Access 在 Command 物件的 Properties 集合裡具有不同的屬性。這些屬性影響 Command 物件的執行方式。

屬性

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

建立 Command 物件要使用的新參數。Name 是新參數的名稱。Type 是該參數的資料類型。你可以使用下表所示的任何資料類型:
常數 描述
adBigInt 20 8 byte 有符號整數
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 byte 有符號整數
adIUnknown 13 指向一個 OLE 物件 Iunkown 的指針
adLongVarBinary 205 長二進製值
adLongVarChar 201 長字串值
adLongVarWChar 203 長 NULL -中斷字串值
adNumeric 131 具有固定的精度和範圍的擴展數字型。
adSingle 4 單精度浮點值
adSmallInt 2 2 byte 有符號整數
adTinyInt 16 1 byte 有符號整數
adUnsignedBigInt 21 8 byte 無符號整數
adUnsignedInt 19 4 byte 無符號整數
adUnsignedSmallInt 18 2 byte 無符號整數
adUnsignedTinyInt 17 1 byte 無符號整數
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 是參數的最大長度,以byte 或字符為單位。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 物件中。
類型 範圍
adSchemaAsserts 0 CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME
adSchemaCatalogs 1 CATALOG_NAME
adSchemaCharacterSets 2 CHARACTER_SET_CATALOG, CHARACTER_SET_SCHEMA, CHARACTER_SET_NAME
adSchemaCheckConstraints 5 CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME
adSchemaCollation 3 COLLATION_CATALOG, COLLATION_SCHEMA, COLLATION_NAME
adSchemaColumnDomainUsage 11 DOMAIN_CATALOG, DOMAIN_SCHEMA, DOMAIN_NAME, COLUMN_NAME
adSchemaColumnPrivileges 13 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, GRANTOR, GRANTEE
adSchemaColumns 4 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
adSchemaConstraintColumnUsage 6 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
adSchemaConstraintTableUsage 7 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME
adSchemaForeignKeys 27 PK_TABLE_CATALOG, PK_TABLE_SCHEMA, PK_TABLE_NAME, FK_TABLE_CATALOG, FK_TABLE_SCHEMA, FK_TABLE_NAME
adSchemaIndexs 12 TABLE_CATALOG, TABLE_SCHEMA, INDEX_NAME, TYPE, TABLE_NAME
adSchemaKeyColumnUsage 8 CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
adSchemaPrimaryKeys 28 PK_TABLE_CATALOG, PK_TABLE_SCHEMA, PK_TABLE_NAME
adSchemaProcedureColumns 29 PROCEDURE_CATALOG, PROCEDURE_SCHEMA, PROCEDURE_NAME, COLUMN_NAME
adSchemaProcedureParameters 26 PROCEDURE_CATALOG, PROCEDURE_SCHEMA, PROCEDURE_NAME, PARAMETER_NAME
adSchemaProcedures 16 PROCEDURE_CATALOG, PROCEDURE_SCHEMA, PROCEDURE_NAME, PARAMETER_TYPE
adSchemaProviderTypes 22 DATA_TYPE, BEST_MATCH
adSchemaReferentialConstraints 9 CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME
adSchemaSchemata 17 CATALOG_NAME, SCHEMA_NAME, SCHEMA_OWNER
adSchemaSQLLanguages 18 沒有
adSchemaStatistics 19 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME
adSchemaTableConstraints 10 CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_TYPE
adSchemaTablePriviledge 14 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, GRANTOR, GRANTEE
adSchemaTables 20 TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE
adSchemaTranslations 21 TRANSLATION_CATALOG, TRANSLATION_SCHEMA, TRANSLATION_NAME
adSchemaUsagePrivileges 15 OBJECT_CATALOG, OBJECT_SCHEMA, OBJECT_NAME, OBJECT_TYPE, GRANTOR, GRANTEE
adSchemaViewColumnUsage 24 VIEW_CATALOG, VIEW_SCHEMA, VIEW_NAME
adSchemaViewTableUsage 25 VIEW_CATALOG, VIEW_SCHEMA, VIEW_NAME
adSchemaViews 23 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 版本。

小恐龍工作坊 提供