Интернет-журнал "Домашняя лаборатория", 2007 №4
Шрифт:
3. Определить источник данных установкой свойства RecordSource объекта Data.
4. Определить тип набора записей установкой свойства RecordsetType объекта Data (этот пункт не обязателен, так как по умолчанию будет создан набор записей динамического типа).
Если приложение должно работать с несколькими источниками данных, то можно одновременно разместить на экранной форме и использовать целый ряд объектов Data.
Как установить свойства объекта Data
Установить имя базы данных во время разработки (design time) приложения можно в окне
Рис. 3.3. Диалоговое окно просмотра файлов баз данных.
Рис. 3.4. Вы можете просто ввести имя файла.
После определения имени файла базы данных, в том же окне свойств надо определить источник данных.
Свойство RecordSource объекта Data определяет, из какой таблицы базы данных требуется использовать данные. Имя таблицы можно ввести с использованием клавиатуры компьютера, или выбрать из списка таблиц, которая появится после нажатия кнопки со стрелкой в правом столбце окна свойств.
Если требуется использовать данные из нескольких таблиц, для определения требуемого источника данных можно использовать язык структурированных запросов (SQL). Описанию языка запросов будут посвящены несколько уроков на данном сайте.
Рис. 3.5. Установка свойства RecordSource.
Что такое набор записей
Теперь пришло время определить понятие набора записей (Recordset). Объект управления данными не работает напрямую с базой данных, а создает в памяти компьютера именованную область, которая используется как буфер между файлом базы данных и объектом Data. В этой области памяти и содержится информация из базы данных. Данные для объекта Recordset определяются свойствами RecordSource и RecordsetType объекта Data.
Таким образом, набор записей представляет собой некоторое подмножество записей из одной или нескольких таблиц базы данных (или из нескольких баз данных). При этом, он может содержать как полную копию таблицы, так и ее часть. Если источник данных определен с помощью языка SQL, то набор записей будет содержать строки из базы данных, удовлетворяющие соответствующему SQL-запросу.
Объект Recordset (как и любой другой объект в Visual Basic) имеет вполне конкретные свойства и методы, которые подробно будут рассмотрены позднее в уроках, посвященных объектам доступа к данным (DAO).
В пятой версии Visual Basic поддерживаются пять типов наборов записей. Но наиболее широко используются только три типа: набор записей динамического типа или динамический набор записей, набор записей типа таблица и статический набор записей. Их краткое описание приведено в таблице 3.1.
Таблица 3.1.
Тип набора записей • Описание
Table •
Набор записей, представляющий собой всю таблицу базы данных. Используя такой набор записей, можно добавлять, изменять или удалять записи, причем доступ возможен только к одной таблице.Dynaset • Динамический набор записей представляет собой таблицу базы данных или результат запроса, содержащего поля одной или нескольких таблиц. Можно добавлять, изменять или удалять записи и изменения будут отражаться в соответствующей базе данных.
Snapshot • Статическая копия таблицы, которую можно использовать, например, для поиска данных или для составления отчетов.
По умолчанию объект управления данными создает набор записей динамического типа.
Использование набора записей типа таблица по своему действию аналогично прямому открытию таблицы. При этом в память компьютера загружается только содержимое текущей записи. Из этого и вытекают преимущества и недостатки табличного набора записей. Используя его, вы можете работать только с одной таблицей, причем таблица открывается вся целиком, что может потребовать значительных ресурсов памяти… Основным преимуществом такого набора записей является возможность использования индексов для упорядочения и поиска данных в таблице.
Из всех трех доступных типов наборов записей наиболее гибким в использовании является динамический набор записей (не зря же именно он создается объектом Data по умолчанию). Фактически, набор записей динамического типа представляет собой ряд ссылок на информацию в базе данных, поскольку использует ключевые поля, однозначно определяющие каждую строку в базе данных. Использование ключей увеличивает скорость загрузки данных и уменьшает нагрузку на сеть при работе приложений многопользовательской среде. Содержимое Мето-полей и полей, содержащих OLE-объекты не загружается до тех пор, пока не возникнет необходимость их использования, например, вывода их на экран. Все это позволяет использовать динамические наборы записей при работе с большими таблицами и таблицами, содержащими OLE-объекты и Меню-поля. Самым существенным недостатком набора записей динамического типа можно считать невозможность использования индексов. При каждом изменении способа упорядочения записей динамический набор должен пересоздаваться заново.
При использовании статического набора записей, в отличие от табличного и динамического наборов, вся информация из базы данных (определенная свойством RecordSource объекта Data) заносится в память компьютера. Статический набор может содержать данные из одной или нескольких таблиц базы данных, при этом обновление данных невозможно. Поэтому, он может использоваться в случаях, не требующих обновления данных в исходной таблице, например, для поиска определенной записи или для составления отчетов. Так как содержимое записей статического набора находится в памяти, то все операции с ним выполняются гораздо быстрее, чем при использовании динамического или табличного наборов записей. При этом платой за высокую скорость является потребность в значительных ресурсах памяти.
Объекты — наборы записей, создаваемые программно, могут быть связаны со свойством Recordset объекта управления данными при помощи оператора Set:
Set Data1.Recordset=NewRecordset.
Таким же образом набор записей, созданный одним объектом управления данными может быть связан с другим объектом управления данными во время выполнения (run time) приложения:
Set Data1.Recordset=NewRecordset
Set Data2.Recordset=Data1.Recordset.
Текущая запись