- •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.2. Свойства полей
У компонента Table есть свойства IndexName и IndexFieldName.
Свойство IndexName содержит выпадающий список индексов, созданных для таблицы. Если выбрать индекс FIO, записи будут представленными упорядоченными по алфавиту. Индекс depfio упорядочивает по подразделениям, а внутри подразделения по алфавиту. В свойстве IndexFieldName просто перечислены предусмотренные в индексах комбинации полей, если вы забыли. что обозначают имена индексов.
Для редактирования отдельных полей имеется Редактор Полей, вызывается двойным щелчком на компоненте Table.
Каждое поле – это объект, свойства которого отображаются в Инспекторе объектов. Класс поля зависит от типа поле: TStringField, TSmallIntField, TBooleanField и т.п. Эти классы являются производными от класса TField – базового класса полей.
Некоторые основные свойства полей:
Alignment – выравнивание отображаемого текста внутри колонки: влево, вправо, по центру
DisplayLabel – заголовок столбца данного поля
DisplayWidth – ширина колонки – число символов
EditMask, EditFormat – форматы отображения данных
DisplayValue – для логических полей: какие значения должны отображаться, если поле имеет значение true или false.
ReadOnly – при значании true запрещает вводить данные в поле
Visible – при значении false делает поле невидимым
Вид приложения после установки всех необходимых свойств:
7.3. Ограничения вводимых значений
Несколько возможноcтей ограничений вводимых значений предоставляют свойства полей:
Ø Для числовых полей имеются свойства MinValue и Maxvalue. При нарушении этих пределов будет генерироваться исключение EDatabaseError, которое лучше перехватывать в приложении, чтобы выдавать пользователю сообщение на русском языке. например, если требуется принимать на работу сотрудников от 20 до 30 лет, можно установить для поля Year_b ограничения MinValue=1970 и Maxvalue=1980.
Ø Можно использовать свойства CustomConstraint, которое позволяет написать ограничение на значение поля в виде строки SQL, например: (Year_b>1970) and (Year_b<1980). Свойство ConstraintErrorMessage содержит строку текста, который будет показан пользователю в случае, если он вводит данные, не удовлетворяющие поставленным ограничениям, например: «Возраст претендента на должность не подходит». Это свойство подходит не только к числовым полям.
Ø Можно использовать обработку события поля onValidate. Это событие возникает перед записью введенного значения поля в буфер записи. Тут можно предусмотреть любые проверки, при появлении недопустимых значений выдать пользователю сообщение.
Если все нормально, то после события onValidate возникает еще событие onСhange, в обработчике которого тоже еще не поздно сгенерировать исключение.
Есть возможность осуществлять проверку на уровне записи, анализируя различные ее поля. Для этого используется свойство Constraints компонента Table. При выборе этого свойства в Инспекторе объектов открывается окно, в котором, щелкая на кнопке Add можно занести набор ограничений, каждое из которых является самостоятельным объектом со свойствами CustomConstraint (строка SQL, определяющая допустимые ограничения) и ErorMessage (строка текста, которая будет представлена пользователю в случае нарушения ограничений). Например: «Принимаем только мужчин > 1955 г.р. и женщин > 1965 г.р.».