Поделиться через


Метод NextRecordset (ADO)

Область применения: Access 2013, Office 2013

Очищает текущий объект Recordset и возвращает следующий набор записей путем прохождения последовательности команд.

Синтаксис

Задайте recordset2 = recordset1. NextRecordset(RecordsAffected )

Возвращаемое значение

Возвращает объект Recordset . В синтаксической модели recordset1 и recordset2 могут быть одинаковыми объектами Recordset или использовать отдельные объекты. При использовании отдельных объектов Recordset сброс свойства ActiveConnection в исходном наборе записей (recordset1) после вызова NextRecordset приведет к ошибке.

Параметры

Параметр Описание
RecordsAffected Необязательный параметр. Переменная Long , в которую поставщик возвращает количество записей, затронутых текущей операцией.

Примечание.

Этот параметр возвращает только количество записей, затронутых операцией; он не возвращает количество записей из инструкции select, используемой для создания набора записей.

Замечания

Используйте метод NextRecordset , чтобы вернуть результаты следующей команды в инструкции составной команды или хранимой процедуры, которая возвращает несколько результатов. При открытии объекта Recordset на основе составной командной инструкции (например, SELECT * FROM table1; SELECT * FROM table2") с помощью метода Execute в команде или метода Open в наборе записей ADO выполняет только первую команду и возвращает результаты в набор записей. Чтобы получить доступ к результатам последующих команд в инструкции, вызовите метод NextRecordset .

До тех пор, пока есть дополнительные результаты и набор записей, содержащий составные инструкции, не разъединен или не маршалирован через границы процесса, метод NextRecordset будет продолжать возвращать объекты Recordset . Если команда, возвращающая строки, успешно выполняется, но не возвращает записей, возвращенный объект Recordset будет открыт, но пуст. Проверьте наличие этого случая, убедившись, что свойства BOF и EOF имеют значение True. Если команда, не возвращающая строки, успешно выполняется, возвращенный объект Recordset будет закрыт, что можно проверить, проверив свойство State в наборе записей. Если результатов больше нет, для набора записей будет задано значение Nothing.

Метод NextRecordset недоступен для отключенного объекта Recordset , где для параметра ActiveConnection задано значение Nothing (в Microsoft Visual Basic) или NULL (на других языках).

Если изменение выполняется в режиме немедленного обновления, вызов метода NextRecordset приводит к ошибке. сначала вызовите метод Update или CancelUpdate .

Чтобы передать параметры для нескольких команд в составной инструкции путем заполнения коллекции Parameters или путем передачи массива с исходным вызовом Open или Execute параметры должны находиться в том же порядке в коллекции или массиве, что и соответствующие команды в ряде команд. Необходимо завершить чтение всех результатов перед чтением значений выходных параметров.

Поставщик OLE DB определяет, когда выполняется каждая команда в составной инструкции. Поставщик Microsoft OLE DB для SQL Server, например, выполняет все команды в пакете после получения составной инструкции. Результирующие наборы записей просто возвращаются при вызове NextRecordset.

Однако другие поставщики могут выполнять следующую команду в инструкции только после вызова NextRecordset. Для этих поставщиков, если явно закрыть объект Recordset перед пошаговой обработкой всей инструкции команды, ADO никогда не выполняет остальные команды.