開啟 Recordset 物件上的游標。
語法
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
參數
來源
選擇性。 評估為有效 Command 物件、SQL 語句、數據表名稱、預存過程調用、URL 或包含永續儲存 Recordset 之檔案或 Stream 物件名稱的 Variant。
ActiveConnection
選擇性。 評估為有效 Connection 物件變數名稱的 Variant,或包含 ConnectionString 參數的 String。
游標類型
選擇性。
CursorTypeEnum 值,決定提供者在開啟 Recordset 時應該使用的數據指標類型。 預設值為 adOpenForwardOnly 。
鎖定類型
選擇性。
LockTypeEnum 值,決定開啟 Recordset 時提供者應該使用的鎖定類型(並行)。 預設值為 adLockReadOnly 。
選項
選擇性。
Long 值,指出如果提供者代表 Command 物件以外的專案,或 Recordset 應該從先前儲存的檔案還原,則提供者應該如何評估 Source 自變數。 可以是一或多個 CommandTypeEnum 或 ExecuteOptionEnum 值,可結合位 OR 運算符。
備註
如果您從包含保存之 Recordset 的 Stream 開啟 Recordset,則使用 adAsyncFetchNonBlocking 的 ExecuteOptionEnum 值將不會有任何作用;擷取將會是同步和封鎖。
備註
adExecuteNoRecords 或 adExecuteStream 的 ExecuteOpenEnum 值不應該與 Open 搭配使用。
備註
ADO Recordset 的預設數據指標是位於伺服器上的正向唯讀數據指標。
在 Recordset 物件上使用 Open 方法,會開啟數據指標,代表基表、查詢結果或先前儲存的 Recordset 記錄。
使用選擇性 的Source 自變數,使用下列其中一項來指定數據源: Command 物件變數、SQL 語句、預存程式、數據表名稱、URL 或完整檔案路徑名稱。 如果 Source 是檔案路徑名稱,它可以是完整路徑(“c:\dir\file.rst”),相對路徑 (“.. 。\file.rst)、或 URL (https://files/file.rst)。
最好使用 Open 方法的 Source 自變數來執行不會傳回記錄的動作查詢,因為無法輕易判斷呼叫是否成功。 這類查詢所傳回的 Recordset 將會關閉。 若要執行不會傳回記錄的查詢,例如 SQL INSERT 語句,請改為呼叫 Command 物件的 Execute 方法或 Connection 物件的 Execute 方法。
ActiveConnection 自變數會對應至 ActiveConnection 屬性,並指定要開啟 Recordset 對象的連接。 如果您傳遞這個自變數的連接定義,ADO 會使用指定的參數開啟新的連接。 將 CursorLocation 屬性設定為 adUseClient,以使用用戶端數據指標開啟 Recordset 之後,您可以變更此屬性的值,以將更新傳送至另一個提供者。 或者,您可以將此屬性設定為 Nothing (在 visual Basic Microsoft 中),或 NULL 以中斷 Recordset 與任何提供者的連接。 不過,變更伺服器端數據指標的 ActiveConnection 會產生錯誤。
對於直接對應至 Recordset 物件屬性的其他自變數(Source、CursorType 和 LockType),自變數與屬性的關聯性如下所示:
在 開啟 Recordset 物件之前,屬性是可擦寫的。
除非您在執行 Open 方法時傳遞對應的自變數,否則會使用屬性設定。 如果您傳遞自變數,則會覆寫對應的屬性設定,並使用自變數值來更新屬性設定。
開啟 Recordset 物件之後,這些屬性會變成唯讀。
備註
ActiveConnection 屬性是 Recordset 物件的唯讀屬性,其 Source 屬性設定為有效的 Command 物件,即使 Recordset 物件未開啟也一樣。
如果您在Source自變數中傳遞 Command 對象,同時傳遞 ActiveConnection 自變數,就會發生錯誤。 Command 物件的 ActiveConnection 屬性必須已經設定為有效的 Connection 物件或連接字串。
如果您在Source自變數中傳遞 Command 物件以外的專案,您可以使用 Options 自變數來優化 Source 自變數的評估。 如果未定義 Options 自變數,您可能會遇到效能降低,因為 ADO 必須呼叫提供者,以判斷自變數是否為 SQL 語句、預存程式、URL 或數據表名稱。 如果您知道所使用的 來源 類型,設定 Options 自變數會指示 ADO 直接跳至相關的程式代碼。 如果 Options 自變數不符合 Source 類型,就會發生錯誤。
如果您在Source自變數中傳遞 Stream 物件,則不應該將資訊傳遞至其他自變數。 這樣做會產生錯誤。 從 Stream 開啟 Recordset 時,不會保留 ActiveConnection 資訊。
如果沒有任何連線與 Recordset 相關聯,Options 自變數的預設值為 adCmdFile。 這通常是持續儲存 的 Recordset 對象的情況。
如果數據源未傳回任何記錄,提供者會將 BOF 和 EOF 屬性設定為 True,且目前記錄位置未定義。 如果數據指標類型允許,您仍然可以將新數據新增至這個空白 Recordset 物件。
當您結束開啟 Recordset 物件的作業時,請使用 Close 方法來釋放任何相關聯的系統資源。 關閉物件並不會從記憶體中移除它;您可以變更其屬性設定,並使用 Open 方法來稍後再次開啟。 若要完全排除記憶體中的物件,請將物件變數設定為 Nothing。
設定 ActiveConnection 屬性之前 ,請呼叫 Open,且沒有作數,以建立 Recordset 實例,方法是將字段附加至 RecordsetFields 集合。
如果您已將 CursorLocation 屬性設定為 adUseClient,則可以以兩種方式之一異步擷取數據列。 建議的方法是將 Options 設定為 adAsyncFetch。 或者,您可以使用 Properties 集合中的「異步數據列集處理」動態屬性,但如果您未將 Options 參數設定為 adAsyncFetch,則相關的擷取事件可能會遺失。
備註
只有透過 Open 方法的 Options 參數,才支援 MS 遠端提供者中的背景擷取。
備註
使用 HTTP 配置的 URL 會自動叫用 Microsoft OLE DB Provider for Internet Publishing。 如需詳細資訊,請參閱 絕對和相對URL。
CommandTypeEnum 和 ExecuteOptionEnum 值的某些組合無效。 如需哪些選項無法合併的資訊,請參閱 ExecuteOptionEnum 和 CommandTypeEnum 的主題。
適用於
另請參閱
Open 和 Close 方法範例 (VB)
Open 和 Close 方法範例 (VBScript)
Open 和 Close 方法範例 (VC++)
Save 和 Open 方法範例 (VB)
Open 方法 (ADO 連線)
Open 方法 (ADO 記錄)
Open 方法 (ADO 資料流)
OpenSchema 方法
Save 方法