Компонент Tтаblе инкапсулирует таблицу реляционной базы данных, причем независимо от типа базы данных. Для доступа к данным компонент использует функции BDE (см. выше).
От предков компонент унаследовал инструменты для работы с закладками. Это
свойство Bookmark и
методы GetBookmark, FreeBookmark,
GotoBookmark.
Работа с полями осуществляется целой группой свойств и методов, среди которых особое место занимает свойство
Fields, представляющее собой индексированный список всех полей набора данных. Это свойство удобно использовать в процессе разработки для организации доступа к полям.
Очень полезны в практическом использовании методы и свойства для
работы С буфером изменений (свойства CachedUpdates, PendingUpdates, UpdateRecordTypes, МСТОДЫ ApplyUpdates, CancelUpdates, CommitUpdate,
RevertRecord). Буфер применяется в клиентских приложениях многоуровневых систем доступа к данным.
В табл. 16.8 приведена справочная информация о свойствах и методах компонента
ттаble. После этого рассматриваются подробности применения основных механизмов набора данных.
|
|
|
|
property DataSource: TDataSource;
|
|
Ссылается на компонент TDataSource главного набора данных в отношении
главный/подчиненный
|
property Defaultlndex: Boolean;
|
|
Управляет сортировкой данных. При значении True записи упорядочиваются по первичному ключу. При значении
False упорядочивание не производится
|
property Exclusive: Boolean;
|
|
Ограничивает доступ к таблице. При значении
True с таблицей может работать только одно приложение. Это свойство важно при одновременной работе нескольких приложений с данными в локальной сети
|
property Exists: Boolean;
|
|
Значение True говорит о том, что связанная с компонентом таблица базы данных существует
|
property IndexDef s: TindexDefs;
|
|
Содержит информацию об индексах таблицы
|
property IndexFieldCount: Integer;
|
|
Возвращает число полей в текущем индексе таблицы
|
property IndexFieldNames: string;
|
|
Разделенный запятыми список названий полей, составляющих текущий индекс. Используется для таблиц серверов SQL
|
property IndexFields: [Index: Integer] : TField;
|
|
Индексированный список полей текущего индекса
|
property IndexFiles: TStrings;
|
|
Список индексных файлов для таблиц dBASE
|
property IndexName: string;
|
|
Определяет вторичный индекс для таблицы. Используется для таблиц локальных СУБД
|
property KeyExclusive: Boolean;
|
|
Управляет границами диапазона, задаваемого методом
SetRange. При значении True крайние записи в диапазон не включаются
|
property KeyFieldCount: Integer;
|
|
Содержит число полей ключа, используемых при поиске. При значении 0 применяется только первое поле, при значении 1 — два первых поля и т. д. По умолчанию устанавливается полное число полей ключа
|
property MasterFields: string;
|
|
Список имен полей главной таблицы, разделенных запятой, используемых при создании отношения главный/подчиненный
|
property MasterSource: TDataSource;
|
|
Содержит имя компонента TDataSource, связанного с набором данных, который является главным в отношении главный/подчиненный
|
property Readonly: Boolean;
|
|
Включает и отключает режим "только для чтения". В некоторых случаях набор данных можно открыть только в этом режиме
|
property StoreDef s: Boolean;
|
|
При значении True все сведения об индексах и структуре таблицы хранятся вместе с формой или модулем данных. В этом случае при создании набора данных одновременно создаются поля, индексы, ограничения
|
property TableLevel: Integer;
|
|
Содержит значение уровня таблицы, используемого в драйвере ВОЕ
|
property TableName: TFileName;
|
|
|
type TTableType = (ttDefault, ttParadox, ttDBase, ttASCII, ttFoxPro) ;
property TableType: TTableType;
|
|
Определяет тип таблицы для стандартного драйвера ВОЕ. Значение
ttDefault означает, что тип таблицы определяется по расширению файла
|
|
procedure Addlndex (const Name, Fields: string; Options: TIndexOptions) ;
|
|
Создает новый индекс. Параметр Name определяет имя нового индекса, параметр
Fields — список полей индекса через запятую, параметр
Options задает тип индекса
|
|
|
Включает в работу границы диапазона, заданные методами
SetRangeStart, SetRangeEnd или EditRangeStart, EditRangeEnd
|
type TBatchMode = (batAppend, batUpdate, batAppendUpdate , batDelete, batCopy) ;
function BatchMove (ASource: TBDEDataSet; AMode : TBatchMode) : Longint;
|
|
Переносит записи из таблицы ASource в набор данных. Тип операции задается параметром
AMode. Возвращает число обработанных записей
|
procedure CancelRange;
procedure CloselndexFile (const IndexFileName: string) ;
|
|
Удаляет текущий диапазон
Закрывает индексный файл для таблиц dBASE
|
|
|
Создает новую таблицу, основываясь на данных о структуре таблицы, содержащихся в свойствах
FieldDef s и indexDef s. Если свойство
FieldDef s пустое, используется свойство
Fields. Структура и данные существующей таблицы перезаписываются
|
procedure Deletelndex (const Name: string);
|
|
|
|
|
Уничтожает таблицу базы данных. Набор данных при этом должен быть закрыт
|
|
|
Переводит набор данных в режим редактирования буфера поиска. После использования этого метода можно изменять значения полей, которые применяются для поиска записей
|
|
|
Разрешает редактирование нижней границы диапазона
|
procedure EditRangeStart;
|
|
Разрешает редактирование верхней границы диапазона
|
|
|
Удаляет все записи из набора данных
|
function FindKey (const KeyValues: array of const) : Boolean;
|
|
Проводит поиск записи, значения полей которой удовлетворяют условиям, заданным параметром
KeyValues. Значения разделяются запятыми. Для поиска можно использовать только поля, входящие в текущий индекс. Для локальных стандартных таблиц BDE это поля, определяемые свойством
indexName. Для таблиц серверов SQL индекс можно задать свойством
indexFieldNames. При успешном поиске функция возвращает значение
True
|
procedure FindNearest (const KeyValues: array of const);
|
|
Проводит поиск записи, значения полей которой, заданные параметром
KeyValues, в минимальной степени отличаются от требуемых в большую сторону. Значения для поиска разделяются запятыми.
Для поиска можно использовать толькополя, входящие в текущий индекс. Для
локальных стандартных таблиц ВОЕ это поля, определяемые свойствомIndexName. Для таблиц серверов SQL индекс можно задать свойством
indexFieldNames. При успешном поиске
функция возвращает True
|
procedure GetlndexNames (List : TStrings) ;
|
|
Возвращает список индексов таблицы
|
procedure GotoCurrent (Table: TTable) ;
|
|
Синхронизирует курсор набора данных с курсором таблицы, заданной параметром
Table
|
function GotoKey: Boolean;
|
|
Устанавливает курсор на запись, соответствующую значениям полей, заданным
при последнем применении метода
SetKey или EditKey
|
|
|
Устанавливает курсор на запись, точно соответствующую
значениям полей, заданным при последнем применении метода
SetKey или EditKey, или
следующую ближайшую к ним по значениям
|
type TLockType = (ItReadLock, ItWriteLock) ; procedure LockTable ( LockType : TLockType) ;
|
|
Закрывает доступ к таблице Paradox или dBASE из других приложений
|
procedure OpenlndexFile (const IndexFileName: string);
|
|
Открывает индексный файл таблицы dBASE
|
procedure RenameTable (const NewTableName: string);
|
|
Переименовывает таблицу Paradox или dBASE
|
|
|
Очищает буфер поиска. После использования этого метода можно изменять значения полей, используемые для поиска записей
|
procedure SetRange (const StartValues, EndValues:
array of const) ;
|
|
Задает диапазон отбора записей. Параметр StartValues определяет значения полей для верхней границы диапазона.
Параметр EndValues определяет значения полей для нижней границы диапазона. Значения диапазона задаются для полей текущего индекса
|
|
|
Задает нижнюю границу диапазона. После этого метода необходимо задать значения для полей текущего индекса, которые и будут нижней границей
|
|
|
Задает верхнюю границу диапазона. После этого метода необходимо задать значения для полей текущего индекса, которые и будут верхней границей
|
type TLockType = (ItReadLock, ItWriteLock) ; procedure UnlockTable (LockType : TLockType) ;
|
|
Разблокирует таблицу Paradox или dBASE для доступа из других приложений
|