- •Базы данных в Delphi 7. Самоучитель
- •Наборы данных
- •Общие свойства компонентов Table и Query
- •Состояния наборов данных
- •Режимы наборов данных
- •Работа с полями наборов данных
- •Набор данных Table
- •Набор данных Query
- •Источник данных
- •Листинг 3.1. Установка и разрыв связи с наборами данных
- •Что нового мы узнали?
Набор данных Table
Набор данных Table представлен в Delphi компонентом Table. Этот набор данных в каждый момент времени может быть связан только с одной таблицей базы данных.
Компонент Table рекомендуется применять при работе с локальными базами данных, такими как Paradox или dBase.
Рассмотрим основные свойства набора данных Table. В таблице 3.4. приведены все свойства, которые отображаются в окне инспектора объектов.
Таблица 3.4. Свойства компонента Table
Название |
Тип свойства |
Описание свойства |
Active |
Boolean |
Определяет, является ли набор данных открытым. Если свойство имеет значение False, то набор данных закрыт и с данными ничего не может сделать ни пользователь, ни программа. Если данное свойство установлено в True, то с данными можно осуществлять произвольные действия (изменять, добавлять, удалять и т. д.) |
AutoCalcFields |
Boolean |
Определяет, как будет осуществляться работа с автомати- чески вычисляемыми полями. Если свойство установлено в True, то значения таких полей будут автоматически вычис- ляться в случае открытия набора данных, перевода набора данных в режим редактирования (dsEdit), передачи фокуса с одного визуального компонента на другой или из одной колонки визуального компонента в другую |
AutoRefresh |
Boolean |
Определяет порядок обновления на сервере базы данных визуальных компонентов для отображаемых полей. Если значение свойства — False (по умолчанию), то автоматиче- ское обновление будет отсутствовать. Для обновления данных в этом случае программист должен предусмотреть вызов процедуры Refresh. Если значение свойства — True, то обновления будут осуществляться автоматически |
CachedUpdates |
Boolean |
Установка значения свойства в True позволяет кэшировать изменения, сделанные в базе данных. При этом данные хранятся в оперативной памяти, и для их переноса в базу данных применяется метод ApplyUpdates. Для отмены сде- ланных изменений вызывается метод CancelUpdates. Для очистки содержимого кэша используется метод CommitUpdates |
Constraints |
TCheckConstraints |
Определяет ограничения целостности на уровне записи, накладываемые на значения отдельных полей набора данных |
DatabaseName |
String |
Определяет имя базы данных, связанной с набором данных |
DefaultIndex |
Boolean |
Определяет, будут ли данные в таблице отсортированы по полю первичного ключа или главного индекса. Значение свойства по умолчанию — True |
Exclusive |
Boolean |
Если значение свойства — True, то другие приложения не смогут обратиться к уже открытому набору данных (приме- нимо только к таблицам Paradox и dBase). Необходимо обя- зательно закрывать открытую таблицу при смене значения данного свойства |
FieldDefs |
TFieldDefs |
Задает набор полей, которые определяют набор данных. Позволяет программно, во время выполнения приложения создавать таблицы и их поля |
Filter |
String |
Содержит текст текущего фильтра для набора данных. В визуальных компонентах будут отображаться только те данные, которые соответствуют условиям данного фильтра |
Filtered |
Boolean |
Определяет, будет ли учитываться значение свойства Filter при отображении данных в визуальных компонентах. В случае True данные будут фильтроваться в соответствии со свой- ством Filter, иначе — фильтр игнорируется |
FilterOptions |
TFilterOptions |
Содержит два подчиненных свойства, которые определяют, является ли фильтр чувствительным к регистру букв и разрешается ли в фильтре использование символа «*» в качестве указателя на любое количество любых символов. По умолчанию эти два свойства имеют значения False |
IndexDefs |
TIndexDefs |
Содержит информацию об индексах таблицы |
IndexFieldNames |
String |
Содержит список столбцов таблицы, которые выбраны в качестве индексных |
IndexFiles |
TStrings |
Содержит название одного или нескольких индексных файлов для таблицы формата dBase |
IndexName |
String |
Определяет альтернативные индексы для таблицы |
MasterFields |
String |
Определяет одно или несколько полей главной таблицы (master table) для установления связи с соответствующими полями подчиненной таблицы, то есть для установления связи «master—detail» |
MasterSource |
TDataSource |
Задает имя компонента источника данных, свойство DataSet которого определяет набор данных, используемый в качестве главной (master) таблицы при установлении связи «master— detail» |
Name |
TComponentName |
Определяет имя компонента набора данных. По умолчанию присваиваются имена Table1, Table2, ј, TableN |
ObjectView |
Boolean |
Указывает, как хранятся объекты полей в свойстве Fields: иерархически или последовательно (дочерние поля размещены после родительских) |
ReadOnly |
Boolean |
Фиксирует, можно ли изменять данные в таблице, или они доступны только для чтения. Если значение свойства — False (по умолчанию), то изменение данных разрешено, иначе — данные из таблицы доступны только для чтения |
SessionName |
String |
Определяет имя компонента Session, связанного с данной таблицей |
StoreDefs |
Boolean |
Указывает, где сохраняются определения полей и индексов. Если значение данного свойства — True, то определения полей и индексов будут сохраняться в модуле данных или в форме. В случае False (по умолчанию), информация сохраня- ется в файлах базы данных |
TableName |
TFileName |
Определяет имя файла таблицы базы данных, которую инкапсулирует объект. Условием установки этого свойства является присвоение значения False свойству Active |
TableType |
TTableType |
Определяет структуру используемой таблицы базы данных и может принимать следующие значения: ttDefault — тип таблицы определяется по ее расширению (*.db — Paradox, *.dbf — dBase, *.txt — ASCII); ttParadox — таблица Paradox; ttDBase — таблица dBase; ttFoxPro — таблица FoxPro; ttASCII — таблица в текстовом формате с данными, разде- ленными запятыми |
Tag |
LongInt |
Не имеет специального назначения. Применяется для хранения целого числа, связанного с компонентом. Может применяться по усмотрению программиста |
UpdateMode |
TUpdateMode |
Определяет критерии поиска обновляемой записи базы данных SQL в BDE (какие поля учитываются). Может принимать одно из трех значений: UpWhereAll — все поля; UpWhereChanged — только ключевые поля и поля, значения которых были изме- нены; UpWhereKeyOnly — только ключевые поля |
UpdateObject |
TDataSetUpdateObject |
Определяет объект типа TDataSetUpdateObject, который используется для обновления записи |
