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


Метод NextRecordset (ADO)

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

Синтаксис

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

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

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

Параметры

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

Замечание

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

Замечания

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

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

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

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

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

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

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

Применимо к

объекта набора записей

См. также

Пример метода NextRecordset (VB)
Пример метода NextRecordset (VC++)