Шаг 125 - Метод NextRecordset

Описание
Принимает следующий набор записей, если он имеется, создаваемый запросом на выборку с выводом по частям, при вызове метода OpenRecordset, и возвращает значение типа Boolean, указывающее, ожидается ли поступление одной или нескольких новых записей (только в рабочей области ODBCDirect).

Set переменная = наборЗаписей.NextRecordset

Параметры
переменная
Переменная типа Boolean. Значение True указывает, что в объекте наборЗаписей имеется следующий доступный набор записей; значение False указывает, что поступления записей не ожидается и наборЗаписей является пустым.
наборЗаписей
Переменная, представляющая существующий объект Recordset, в котором ожидается возвращение записей.

Замечания
В рабочей области ODBCDirect пользователь имеет возможность открыть объект Recordset, с указанием более одного запроса на выборку в аргументе source метода OpenRecordset или в свойстве SQL объекта QueryDef, представляющего запрос на выборку, как показано в следующем примере.

SELECT Фамилия, Имя FROM Клиенты 
WHERE Фамилия = 'Иванов';
SELECT Марка, Цена FROM Товары 
WHERE КодТовара = 9999

В открытом объекте Recordset будут выведены результаты первого запроса. Чтобы вывести второй результирующий набор записей, следует вызвать метод NextRecordset.
Если имеется доступный дополнительный набор записей (т.е. в методе OpenRecordset или в свойстве SQL указан еще один запрос), то записи, возвращенные в следующем запросе, будут загружены в объект Recordset, а свойство NextRecordset получит значение True, указывающее, что имеется дополнительный набор записей. Если доступных дополнительных записей нет (т.е. в объект Recordset были загружены записи из последнего запроса), в свойстве NextRecordset возвращается значение False, а объект Recordset становится пустым.
Допускается также использование Cancel для сброса всего содержимого объекта Recordset. Однако при вызове метода Cancel будут сброшены также еще не загруженные записи.

Пример
Следующая программа использует метод NextRecordset для просмотра данных составного запроса SELECT. При выполнении таких запросов свойство DefaultCursorDriver должно получить значение dbUseODBCCursor. Метод NextRecordset возвращает значение True, даже если некоторые или все инструкции SELECT не возвращают записей. Значение False будет возвращено только после всех предложений инструкции SQL.

Sub NextRecordsetX()

	Dim wrkODBC As Workspace
	Dim conPubs As Connection
	Dim rstTemp As Recordset
	Dim intCount As Integer
	Dim booNext As Boolean

	' Создает объект Workspace ODBCDirect и открывает объект 
	' Connection. При использовании составных инструкций SQL 
	' значение DefaultCursorDriver является обязательным.
	Set wrkODBC = CreateWorkspace("", "admin", "", dbUseODBC)
	wrkODBC.DefaultCursorDriver = dbUseODBCCursor
	Set conPubs = wrkODBC.OpenConnection("Publishers", , , "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")
	' Создает составную инструкцию SELECT.
	Set rstTemp = conPubs.OpenRecordset("SELECT * " & 	"FROM authors; " & _
		"SELECT * FROM stores; " & "SELECT * FROM jobs")
	' Делает попытку напечатать результаты каждой из трех 
	' инструкций SELECT.
	booNext = True
	intCount = 1
	With rstTemp
		Do While booNext
			Debug.Print "Содержимое набора записей #" & intCount
			Do While Not .EOF
			Debug.Print , .Fields(0), .Fields(1)
			.MoveNext
			Loop
			booNext = .NextRecordset
			Debug.Print "    rstTemp.NextRecordset = " & 	booNext
			intCount = intCount + 1
		Loop
	End With

	rstTemp.Close
	conPubs.Close
	wrkODBC.Close

End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.03.2002