Страница 162 из 179
Объект управления данными обозначен на панели инструментов интегрированной среды разработки Visual Basic 5 пиктограммой, показанной на рис. 3.1.
Рис. 3.1. Пиктограмма объекта Data на панели инструментов Visual Basic 5.
Внешний вид объекта Data на вашей экранной форме показан на рис. 3.2. При его выделении, в углах и на серединах сторон появляются маркеры, с помощью которых можно изменять линейные размеры этого элемента управления по вашему вкусу. Объект Data содержит заголовок и четыре кнопки, предназначенные для перемещения по записям базы данных, а точнее, по созданному им набору записей (что такое набор записей вы узнаете несколько позднее). В качестве заголовка лучше использовать текст, каким-либо образом характеризующий данные, с которыми вы предполагаете работать. Заголовок определяется свойством Caption объекта Data.
Рис. 3.2. Вид объекта Data на экранной форме.
Чтобы использовать объект управления данными в приложении, необходимо выполнить, по крайней мере, четыре действия:
1. Выбрать объект Data на панели инструментов, перенести его на экранную форму и установить требуемые размеры.
2. Определить имя файла базы данных, с которым вы собираетесь работать, установкой свойства DatabaseName объекта Data.
3. Определить источник данных установкой свойства RecordSource объекта Data.
4. Определить тип набора записей установкой свойства RecordsetType объекта Data (этот пункт не обязателен, так как по умолчанию будет создан набор записей динамического типа).
Если приложение должно работать с несколькими источниками данных, то можно одновременно разместить на экранной форме и использовать целый ряд объектов Data.
Как установить свойства объекта Data
Установить имя базы данных во время разработки (design time) приложения можно в окне свойств (Properties) объекта управления данными. При выборе свойства DatabaseName в правом столбце окна свойств появится кнопка с многоточием. При нажатии на нее откроется диалоговое окно просмотра файлов DatabaseName, при помощи которого необходимо выбрать требуемую для работы базу данных. Кроме того, если вы хорошо знаете полный путь к файлу, то можете просто ввести имя файла в окне свойств, используя клавиатуру компьютера. Здесь следует особо подчеркнуть, что имя должно включать в себя полный путь к файлу базы данных.
Рис. 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-объекты и Меню-поля. Самым существенным недостатком набора записей динамического типа можно считать невозможность использования индексов. При каждом изменении способа упорядочения записей динамический набор должен пересоздаваться заново.