ADO Open 方法
❮ 完整的 Recordset 物件參考
Open 方法開啟一個數據庫元素,該元素使您可以訪問表中的記錄、查詢的結果或已儲存的 Recordset。
提示: 使用完 Recordset 物件後,請務必關閉它以釋放系統資源。將 Recordset 物件設定為 Nothing 以將其完全從記憶體中刪除。
語法
objRecordset.Open source,actconn,cursortyp,locktyp,opt
引數 |
描述 |
source |
可選。指定資料來源。source 引數可以是以下之一:
- URL
- 相對/完整的檔案路徑名
- Command 物件
- SQL 語句
- 儲存過程
- 表名
|
actconn |
可選。連線字串或 Connection 物件 |
cursortyp |
可選。一個 CursorTypeEnum 值,指定開啟 Recordset 物件時使用的游標型別。預設為 adOpenForwardOnly |
locktyp |
可選。一個 LockTypeEnum 值,指定 Recordset 物件上的鎖定型別。預設為 adLockReadOnly |
opt |
可選。指定如何評估 source 引數(如果它不是 Command 物件)。可以是多個 CommandTypeEnum 或 ExecuteOptionEnum 值中的一個或多個。 |
示例
開啟 ADO 表 Recordset
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "Customers", conn
%>
開啟 ADO SQL Recordset
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn
%>
CursorTypeEnum 值
常量 |
值 |
描述 |
adOpenUnspecified |
-1 |
未指定的游標型別 |
adOpenForwardOnly |
0 |
預設。前向只讀游標。當您只需要遍歷 Recordset 一次時,這可以提高效能。 |
adOpenKeyset |
1 |
鍵集游標。類似於動態游標,但您看不到其他使用者新增的記錄,儘管其他使用者刪除的記錄對您的 Recordset 來說是無法訪問的。其他使用者對資料所做的更改仍然可見。 |
adOpenDynamic |
2 |
動態游標。其他使用者新增、更改和刪除的記錄都可見,並且可以對 Recordset 進行所有型別的移動。 |
adOpenStatic |
3 |
靜態游標。記錄的靜態副本,可用於查詢資料或生成報告。其他使用者新增、更改或刪除的記錄不可見。 |
LockTypeEnum 值
常量 |
值 |
描述 |
adLockUnspecified |
-1 |
未指定的鎖定型別。克隆繼承原始 Recordset 的鎖定型別。 |
adLockReadOnly |
1 |
預設。只讀記錄 |
adLockPessimistic |
2 |
悲觀鎖定,逐條記錄。提供商在編輯後立即鎖定記錄 |
adLockOptimistic |
3 |
樂觀鎖定,逐條記錄。提供商僅在呼叫 update 時鎖定記錄 |
adLockBatchOptimistic |
4 |
樂觀批次更新。批次更新模式需要 |
CommandTypeEnum 值
常量 |
值 |
描述 |
adCmdUnspecified |
-1 |
未指定的命令型別 |
adCmdText |
1 |
將 CommandText 評估為命令或儲存過程呼叫的文字定義 |
adCmdTable |
2 |
將 CommandText 評估為表名,其列由 SQL 查詢返回 |
adCmdStoredProc |
4 |
將 CommandText 評估為儲存過程名稱 |
adCmdUnknown |
8 |
預設。未知命令型別 |
adCmdFile |
256 |
將 CommandText 評估為持久儲存的 Recordset 的檔名。僅與 Recordset.Open 或 Requery 一起使用。 |
adCmdTableDirect |
512 |
將 CommandText 評估為表名,其所有列都已返回。僅與 Recordset.Open 或 Requery 一起使用。要使用 Seek 方法,Recordset 必須以 adCmdTableDirect 開啟。不能與 ExecuteOptionEnum 值 adAsyncExecute 結合使用。 |
ExecuteOptionEnum 值
常量 |
值 |
描述 |
adOptionUnspecified |
-1 |
未指定的命令 |
adAsyncExecute |
16 |
命令應非同步執行。不能與 CommandTypeEnum 值 adCmdTableDirect 結合使用 |
adAsyncFetch |
32 |
應非同步檢索初始數量(在 CacheSize 屬性中指定)之後的其餘行。 |
adAsyncFetchNonBlocking |
64 |
主執行緒永遠不會阻塞以進行檢索。如果請求的行尚未檢索到,則當前行將自動移至檔案末尾。如果您從包含持久化儲存的 Recordset 的 Stream 開啟 Recordset,adAsyncFetchNonBlocking 將不起作用;操作將是同步和阻塞的。使用 adCmdTableDirect 選項開啟 Recordset 時,adAsynchFetchNonBlocking 無效 |
adExecuteNoRecords |
128 |
命令文字是一個不返回行的命令或儲存過程。如果檢索到任何行,則會將其丟棄且不返回。adExecuteNoRecords 只能作為 Command 或 Connection Execute 方法的可選引數傳遞 |
adExecuteStream |
256 |
命令執行的結果應作為流返回。adExecuteStream 只能作為 Command Execute 方法的可選引數傳遞 |
adExecuteRecord |
512 |
CommandText 是一個命令或儲存過程,它返回一個應作為 Record 物件返回的單行 |
❮ 完整的 Recordset 物件參考
W3schools 學習路徑
跟蹤您的進度 - 免費!