清除目前 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 物件將會開啟,但會是空的。 藉由確認 BOF 和 EOF 屬性都是 True,以測試此案例。 如果非數據列傳回命令成功執行,則會關閉傳回的 Recordset 物件,您可以在 Recordset 上測試 State 屬性來驗證該物件。 當沒有任何結果時, 記錄集 將會設定為 Nothing。
在中斷連線的 Recordset 物件上無法使用 NextRecordset 方法,其中 ActiveConnection 已設定為 Nothing(Microsoft Visual Basic) 或 NULL(其他語言)。
如果在立即更新模式中進行編輯,則呼叫 NextRecordset 方法會產生錯誤;先呼叫 Update 或 CancelUpdate 方法。
若要在複合語句中傳遞多個命令的參數,請填入 Parameters 集合,或傳遞具有原始 Open 或 Execute 呼叫的陣列,參數在集合或數位中的順序必須與命令系列中的個別命令相同。 您必須先完成讀取所有結果,才能讀取輸出參數值。
您的 OLE DB 提供者會決定何時執行複合語句中的每個命令。 例如, Microsoft OLE DB Provider for SQL Server 會在接收複合語句時,在批次中執行所有命令。 當您呼叫 NextRecordset 時,只會傳回產生的 Recordets。
不過,只有在呼叫 NextRecordset 之後,其他提供者才能在語句中執行下一個命令。 針對這些提供者,如果您在逐步執行整個命令語句之前明確關閉 Recordset 物件,ADO 永遠不會執行其餘命令。