|
||||||||
|
Подключение нескольких конечных наборовЛюбой оператор SQL может включать несколько операторов SELECT или вызовов хранимых процедур, выполняющих один или несколько операторов SELECT. Каждый такой оператор генерирует набор записей, который Ваша программа должна обработать или отбросить, прежде чем будут освобождены ресурсы и станет доступным следующий набор. Так как не всегда заранее известно, сколько конечных наборов (result sets) сгенерирует хранимая процедура, программа должна быть готова к обработке произвольного числа наборов. Заметьте: если хранимая процедура возвращает несколько конечных наборов, ни один из них нельзя обновлять. Чтобы получить несколько конечных наборов, можно использовать курсоры как на стороне клиента, так и на стороне сервера. В первом случае такие наборы возвращаются независимо от типа открытого Вами объекта Recordset. А во втором случае Вы должны открыть объект Recordset с последовательным доступом. Ш Чтобы получить несколько конечных наборов: Запишите в свойство DefaultCursorDriver рабочего пространства значение dbUseServerCursor, указав тем самым, что Вы используете курсоры на стороне сервера. Создайте объект QueryDef и укажите в свойстве SQL корректную строку SQL, возвращающую несколько объектов Recordset. Запишите 1 в свойство CacheSize объекта QueryDef; тем самым Вы сообщите, что сервер должен передавать Вам по одной записи. Получая записи таким способом, Вы на самом деле не используете курсор. Откройте объект Recordset на только что созданном объекте QueryDef. Укажите константу dbOpenForwardOnly для аргумента тип метода OpenRecordset. Используйте метод NextRecordset для доступа к следующему объекту Recordset в группе наборов записей, возвращенных сервером. Этот метод сбрасывает текущий объект Recordset и заменяет его следующим набором записей, указанным в операторе SQL. Если в группе объектов Recordset больше нет наборов записей, метод NextRecordset вернет False, а текущий объект Recordset станет пустым.В следующем примере мы выводим значения каждого поля каждой записи из всех конечных наборов:
Текст пособия подготовлен на основе материалов книги Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл. c Оригинальное издание на английском языке, Microsoft Corporation, 1997 c Русский перевод, Microsoft Corporation, 1997 |