NextRecordset 方法 (ADO)

清除目前的 Recordset 物件,並透過一連串的命令來傳回下一個 Recordset

語法

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

傳回值

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

參數

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

注意

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

備註

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

只要有額外的結果,而且包含複合陳述式的 Recordset 不會中斷連線或跨進程界限封送處理, NextRecordset 方法就會繼續傳回 Recordset 物件。 如果資料列傳回命令成功執行,但未傳回任何記錄,則傳回的 Recordset 物件將會開啟,但空白。 確認 BOFEOF 屬性都為 True,以測試此案例。 如果非資料列傳回的命令成功執行,則會關閉傳回的Recordset物件,您可以藉由測試Recordset上的State屬性來進行驗證。 當沒有任何結果時, 記錄集 會設定為 Nothing

已中斷連線的Recordset物件無法使用NextRecordset方法,其中ActiveConnection已在 Microsoft Visual Basic) 中設定為Nothing (,或其他語言) 的 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++)