КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Значение Свойства индексаixPrimary Первичный индекс ixUnique Все значения индексных полей уникальны ixDescending Сортировка по индексу выполняется в порядке убывания ixCaselnsensitive Процесс сортировки нечувствителен к регистру содержимого текстовых полей
Описание индексов таблицы можно просмотреть в Проводнике соответствующего модуля данных в разделе IndexDefs. Для удаления вторичного индекса можно воспользоваться методом procedure Deletelndex(const Name: String); Получить список доступных индексов позволяет метод procedure GetlndexNames(List: TStrings};
Вычисляемые поля Когда в программе используются не физические поля таблицы, а псевдополя, сформированные в редакторе полей, это придает приложению дополнительную гибкость и позволяет создавать несуществующие поля с оригинальными характеристиками. Один из таких типов — поля соответствия — мы уже рассмотрели. Теперь перейдем к описанию вычисляемых полей, значения которых берутся не из таблиц базы данных, а рассчитываются на основе значений уже существующих полей текущей записи. Пусть в главную таблицу просмотра требуется добавить поле, содержащее звездочку, если названия фирмы-производителя и фирмы-издателя совпадают. Для этого добавим в список полей таблицы Games новое поле под названием CalcFieLd, указав при этом его тип String и выбрав с помощью переключателя Field type (Тип поля) вариант Calculated (Вычисляемое). После этого создадим обработчик события ОпСаlcFields для таблицы Games, в котором проанализируем значения полей PubName и DevName и выполним присваивание вычисляемому полю подходящего значения. Нужные данные доступны через переменные GamesPubName и Games DevName. procedure TDataModule2.GarnesCalcFields(DataSet: TDataSet); Begin ifGamesPubName.Value = GamesDevName.Value then GamesCalcField.Value := '*' else GamesCalcField.Value := ''; end; Осталось только добавить новое поле в таблицу DBGridl с помощью редактора столбцов. При работе с вычисляемыми полями подо учитывать значение свойства AutoCalcFields. Если оно имеет значение True, то событие OfiCalcFieids генерируется, когда открывается таблица базы дан- ных, происходит переключение режима работы набора данных в состояние dsEdit (редактирование), фокус перемещается между объектами, привязанными к таблице, а также при удалении записи. Когда пользователь ведет с таблицей интенсивную работу, а обьем вычислений велик, обработчик события OnCalcFields может замедлить работу приложения, поэтому значение свойства AutoCalcFields s подобном случае лучше установить равным False.
|