Command對象
Command對象的主要目的是執行參數化的存儲過程。其形式要麼是臨時准備(prepared),要麼是持久的預編譯(precompiled)過的SQL語句。如果想(存儲)一個或多個查詢以供在同一Connection上多次執行,Command對象也是很有用的。當想創建Recordset時,一種高效的方法是繞過Command對象而采用Recordset.Open方法。
屬性
屬性名稱數據類型和用途
ActiveConnection指針類型,指向Command所關聯的Connection對象。對於現存的已打開連接,可使用SetcmmName.ActiveConnection=cnnName。另外,也可以不用相關Connection對象名稱而使用有效的連接字符串去創建一個新的連接。默認值為Null。
CommandText可讀寫String類型。為ActiveConnection指定一條SQL語句、表名、存儲過程名或提供者能接受的任意字符串。CommandType屬性的值決定了CommandText屬性值的格式。默認值為空字符串:""
CommandTimeout可讀寫Long類型,指定中止一個Command.Execute調用之前必須等待的時間。這時的值優先於Connection.ComandTimeout中的設定值。默認值為30秒。
CommandType可讀寫Long類型,指定數據提供者該如何解釋CommandText屬性值。CommandType等效於Connection.Execute方法中的可選參數lngOption。詳見CommandType所用到的常數。默認值為adCmdUnkown.
Name可讀寫String類型,指定Command的名稱。
Prepared可讀寫Boolean類型,判斷數據源是否把CommandText中的SQL語句編譯為preparedstatement(一種臨時性存儲過程)。preparedstatement僅存活於Command的ActiveConnection生命周期中。許多客戶/服務器RDBMS,包括SQLSERVER,都支持preparedstatement。如果數據源不支持preparedstatement,則把該屬性設為True,將導致一個自陷錯誤。
State可讀寫Long類型,指定Commnad狀態。見State常數。
注意:最好每次都為CommandType指定的一個合適的常數值,否則會降低系統運行的效率。
方法
方法用途
Createparameter在執行該方法之前,必須首先聲明一個ADODB.Parameter對象。調用語法為:
cmmName.CreateParameter[strName[,lngType[,lngDirection[,lngSize[,varValue]]]]]
Execute調用語法同Connection.Execute大致相同。
常數
State常數
常數含義
adStateClosedConnection(或其他對象)是關閉的(默認值)
adStateConnecting正在連接數據源的狀態
adStateExecutingConnection或Command對象的Execute方法已被調用
adStateFetching返回行(row)到Recordset對象
adStateOpenConnection(或其他對象)是打開的(活動的)
CommandType所用到的常數
Command類型常數含義
adCmdUnknownCommand類型未定(默認值),由數據提供者去判別Command語法
adCmdFileCommand是和對象類型相應的文件名稱
adCmdStoredProcCommand是存儲過程名稱
adCmdTableCommand是能產生內部SELECT*FROMTableName查詢的表名稱
adCmdTableDirectCommand是能直接從表中獲取行內容的表名稱
adCmdTextCommand是一條SQL語句->