
- •1. Архитектура и функции bde
- •Процесс доступа к данным из приложения
- •2. Псевдонимы баз данных и настройка вdе
- •3. Принципы построения баз данных
- •4. Типы баз данных
- •4.1. Локальные и файл серверные бд
- •4.2. Клиент-серверные бд
- •5. Механизм доступа к Базам данных
- •6. Создание таблиц с помощью Database Desktop
- •7. Основные свойства компонента Table и простейшие приложения на его основе
- •7.1. Установка связей между компонентами и базой данных, навигация по таблице
- •7.2. Свойства полей
- •7.3. Ограничения вводимых значений
- •7.4. Вычисляемые поля
- •7.5. Фильтрация данных
- •8. Некоторые компоненты визуализации данных
7. Основные свойства компонента Table и простейшие приложения на его основе
7.1. Установка связей между компонентами и базой данных, навигация по таблице
В качестве набора данных используем компонент Table. Источником данных будет компонент DataSource. Это невизуальные компоненты.
В качестве компонента визуализации: DBGrid, в котором будут отображаться данные.
Установим цепочку связей между этими компонентами в соответствии со схемой взаимодействия компонентов с базой данных:
Связь между визуальным компонентом и источником данных: свойству DataSource у компонента DBGrid1 в инспекторе объектов присвоить значение из выпадающего списка DataSource1.
Связь между источником данных и набором данных: свойству DataSet у компонента DataSource1 в инспекторе объектов присвоить значение из выпадающего списка Table1.
Связь между набором данных и необходимой таблицей базы данных: для этого предназначены два свойства компонента Table – DatabaseName и TableName. В выпадающем списке свойства DatabaseName показываются все доступные BDE псевдонимы баз данных. Выбрать ранее созданный псевдоним dbP(рис.). После этого в выпадающем списке свойства TableName появятся таблицы, доступные в данной базе данных. Выберите таблицу Pers.
Можно связаться с таблицей в процессе проектирования, если установить свойство таблицы Table1 Active в true.
Запустив приложение можно просматривать данные, редактировать их (отредактированные данные будут помещаться в базу данных в момент перехода от редактируемой записи к любой другой). Поле Num невозможно изменить, поскольку оно автоматически изменяется и доступно только для чтения. Нельзя задать произвольное имя подразделения Dep, так как имеется таблица Dep, задана целостность на уровне ссылок и допустимы только те значения Dep, которые имеются в головной таблице Dep.
Заранее выставлять для таблиц Active = true допустимо только в процессе настройки и отладки приложения, работающего с локальными базами данных.
В законченном приложении во всех таблицах сначала должно быть установлено Active = false, затем при событии формы onCreate эти свойства могут быть установлены в true, а при событии формы onDestroy эти свойства опять должны быть установлены в false. Это исключит неоправданное поддержание связи с базой данных, которое занимает ресурсы, а при работе в сети мешает доступу к базе данных других пользователей.
Некоторые свойства компонента DBGrid: ReadOnly – запрещение редактирования данных, тот же эффект дает для свойства Options – dgEditing=false.
У компонента Table есть булево свойство Exclusive – определяет доступ к используемой таблице при одновременном обращении к ней нескольких приложений (например, при работе в сети или в многозадачном режиме). Exclusive=true – таблица будет закрыта для других приложений, это свойство можно менять только при Active=false.
Рассмотрим еще один компонент, управляющий работой с таблицей – навигатор DBNavigator (со страницы Data Control). DBNavigator имеет кнопки для управления данными:
nbFirst - перемещение к первой записи
nbPrior - перемещение к предыдущей записи
nbNext - перемещение к следующей записи
nbLast - перемещение к последней записи
nbInsert - вставить новую запись перед текущей
nbDelete - удалить текущую запись
nbEdit - редактировать текущую запись
nbPost - послать отредактированную информацию в базу данных
nbCancel - отменить результаты редактирования или добавления новой записи
bnRefresh - очистить буфер, связанный с набором данных
DBNavigator имеет свойство VisibleButtons, пользуясь которым можно убрать любые ненужные в данном приложении кнопки. Если нужно запретить пользователю вводить новые записи – nbInsert=false. Если нужно запретить редактирование – оставить только кнопки – nbFirst, nbPrior, nbNext, nbLast.
DBNavigator связывается с источником данных также через свойство DataSource. При работе с DBNavigator внесенные изменения зафиксируются в таблице после нажатия кнопки nbPost.