Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> DAO - Data Access Objects >> Использование DAO с Microsoft Jet >> Объект Recordset и набор Recordsets >> Объекты Recordset типа"динамический набор&quot

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Объекты Recordset типа"динамический набор"


Объект Recordset типа ?динамический набор? представляет результат запроса по одной или нескольким таблицам. Это динамический набор записей, позволяющий добавлять, модифицировать и удалять записи из входящей в него таблицы или таблиц. Динамический набор допускает модификацию и выборку данных из объединений нескольких таблиц, в том числе таблиц, подключенных из разных баз данных. Вы можете создать объект Recordset этого типа в рабочих пространствах Microsoft Jet и ODBCDirect. Применительно к удаленным источникам данных динамический набор состоит из последовательности закладок (bookmarks). Каждая закладка однозначно идентифицирует одну запись в наборе. Реальные данные из полей набора записей не извлекаются до тех пор, пока Вы не сделаете явной ссылки на запись, содержащую эти данные. Microsoft DAO использует закладки для поиска соответствующих записей и выборки требуемых данных. Для большей производительности Microsoft DAO обычно возвращает лишь те записи, на которые Вы сделали явную ссылку в программе; данные из всех записей набора возвращаются не всегда.

Чтобы получить значение свойства RecordCount для объекта Recordset типа ?динамический набор?, нужно сначала вызвать метод MoveLast и перейти в конец набора. Это приводит к перебору всех записей в наборе.

Динамический набор обычно допускает обновление, но не все поля объектов Recordset этого типа можно изменять. Чтобы выяснить, можно ли изменить конкретное поле, проверьте значение свойства DataUpdatable объекта Field.

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

страница данных, которую пытается обновить один пользователь, заблокирована другим; запись изменена после того, как ее считали; у данного пользователя нет прав на обновление набора записей; одна или несколько таблиц либо одно или несколько полей доступны только для чтения; база данных открыта только для чтения; объект Recordset создан из нескольких таблиц без оператора JOIN; объект Recordset включает поля из источника данных ODBC или таблицу (таблицы) Paradox и у этой таблицы нет уникального индекса.

Чтобы создать динамический набор, укажите константу dbOpenDynaset как значение аргумента тип метода OpenRecordset:

Sub PrintHireDates()
═════Dim dbs As Database, rst As Recordset
═════Dim strSQL As String
═════Const conPath = _
══════════"C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"

═════? открываем базу данных и получаем ссылку на объект Database
═════Set dbs = DBEngine. Workspaces(0).OpenDatabase(conPath)
═════?
формируем оператор SQL
═════strSQL = "SELECT FirstName, LastName, HireDate FROM Employees " & _
══════════"WHERE HireDate <= #1-1-93# ORDER BY HireDate;"
═════?
открываем объект Recordset типа "динамический набор"
═════Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
═════?
выводим записи из набора
═════Do Until rst. EOF
══════════Debug. Print rst!FirstName, rst!LastName, rst!HireDate
══════════rst. MoveNext
═════Loop

═════? закрываем набор записей и базу данных
═════rst. Close
═════dbs. Close
End Sub



[Назад]    [Содержание ]    [Вперед]

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017