共用方式為


NextRecordset 方法 (ADO)

清除目前 Recordset 物件,並透過一系列命令前進來傳回下一個 Recordset

語法

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

傳回值

會傳回 Recordset 物件。 在語法模型中,recordset1 和 recordset2 可以是相同的 Recordset 物件,或者您可以使用不同的物件。 使用個別的 Recordset 物件時,呼叫 NextRecordset 之後,在原始 Recordset (recordset1) 上重設 ActiveConnection 屬性會產生錯誤。

參數

RecordAffected
選擇性。 Long 變數,提供者會傳回目前作業受影響的記錄數目。

備註

此參數只會傳回受作業影響的記錄數目;它不會從用來產生 Recordset 的 select 語句傳回記錄計數。

備註

使用 NextRecordset 方法可傳回復合命令語句中下一個命令的結果,或傳回多個結果的預存程序的結果。 如果您根據複合命令語句開啟 Recordset 物件(例如“SELECT * FROM table1;SELECT * FROM table2“) 使用 Command 上的 Execute 方法或 Recordset 上的 Open 方法,ADO 只會執行第一個命令,並將結果傳回至 recordset。 若要存取 語句中後續命令的結果,請呼叫 NextRecordset 方法。

只要有其他結果,而且包含複合語句的 Recordset 不會中斷聯機或跨進程界限封送處理, NextRecordset 方法會繼續傳回 Recordset 物件。 如果傳回數據列的命令成功執行,但不會傳回任何記錄,則傳回的 Recordset 物件將會開啟,但會是空的。 藉由確認 BOFEOF 屬性都是 True,以測試此案例。 如果非數據列傳回命令成功執行,則會關閉傳回的 Recordset 物件,您可以在 Recordset 上測試 State 屬性來驗證該物件。 當沒有任何結果時, 記錄集 將會設定為 Nothing

在中斷連線的 Recordset 物件上無法使用 NextRecordset 方法,其中 ActiveConnection 已設定為 Nothing(Microsoft Visual Basic) 或 NULL(其他語言)。

如果在立即更新模式中進行編輯,則呼叫 NextRecordset 方法會產生錯誤;先呼叫 UpdateCancelUpdate 方法。

若要在複合語句中傳遞多個命令的參數,請填入 Parameters 集合,或傳遞具有原始 OpenExecute 呼叫的陣列,參數在集合或數位中的順序必須與命令系列中的個別命令相同。 您必須先完成讀取所有結果,才能讀取輸出參數值。

您的 OLE DB 提供者會決定何時執行複合語句中的每個命令。 例如, Microsoft OLE DB Provider for SQL Server 會在接收複合語句時,在批次中執行所有命令。 當您呼叫 NextRecordset 時,只會傳回產生的 Recordets

不過,只有在呼叫 NextRecordset 之後,其他提供者才能在語句中執行下一個命令。 針對這些提供者,如果您在逐步執行整個命令語句之前明確關閉 Recordset 物件,ADO 永遠不會執行其餘命令。

適用於

Recordset 物件 (ADO)

另請參閱

NextRecordset 方法範例 (VB)
NextRecordset 方法範例 (VC++)