Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika-otvety (2).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
493.88 Кб
Скачать
  1. Навигационный способ доступа к данным

Компонент TTable представляет собой НД, который в некоторый момент времени может быть связан только с одной таблицей БД. Набор данных, возвращаемый компонентом, основан на навигационном способе доступа к данным. Его рекомендуется использовать только для локальных БД, таких как Paradox и dBase. При работе с удаленными БД лучше использовать компонент TQuery, который будет рассмотрен в следующей лекции.

Рассмотрим основные свойства и методы отличающие класс TTable от, рассмотренного ранее, предка. Наиболее важными являются свойства необходимые для подключения компонента к данным т.к. они указываются всегда:

DatabaseName: String – путь к БД или псевдоним;

TableName: TFileName – имя таблицы.

После установки обязательных свойств можно выполнить другие настройки или включить НД через свойство Active или методом Open.

DefaultIndex:  Boolean – управляет включением сортировки по текущему индексу;

Exclusive:   Boolean – включает монопольный доступ к таблице БД;

Exists:   Boolean – указывает, существует ли таблица БД;

IndexDefs:   TIndexDefs – содержит информацию об индексах таблицы;

IndexFieldCount: Integer – количество полей текущего индекса;

IndexFieldNames: String – список полей, образующих текущий индекс таблицы;

IndexFields: [Index: Integer]:   TField – открывает доступ к полям текущего индекса;

IndexFiles: TStrings — содержит список имен индексных файлов для таблицы dBASE;

IndexName:  String – имя вторичного индекса таблицы;

KeyExclusive: Boolean – если содержит false, граничные точки диапазона при фильтрации по ключам методом SetRange входят в поисковый диапазон, в противном случае — не входят;

KeyFieldCount:   Integer — указывает, сколько полей будут участвовать при поиске по части индекса. Если 0 – первое поле, 1 – первое и второе и т.д.

MasterFields: String – определяет поля связи главной таблицы в связи главный- детальный;

MasterSource: TDataSource — определяет источник данных главной таблицы в связи главный- детальный.

ReadOnly: Boolean – включает (true) или выключает (false) режим «только для чтения» данных;.

TableType: TTableType = (ttParadox, ttDBase, ttFoxPro, ttASCII) – определяет тип таблицы.

Основные методы класса TTable:

procedure AddIndex (const Name, Fields: String;  Options: IndexOptions) — создает новый индекс с указанным именем (Name) и списком полей которые входят в индекс (Fields). Параметр Options определяет параметры индекса: первичный индекс (ixPrimary), уникальный (ixUnique), индекс по убыванию (ixDescending), чувствительный к регистру букв (ixCaseInsensitive), определенный по индексному выражению (ixExpression), не обновляемый автоматически при открытии таблицы (ixNonMaintained).

procedure ApplyRange — включает фильтрацию записей по ключевым полям;

procedure CancelRange — отменяет фильтрацию записей по ключевым полям;

procedure CreateTable — создает новую таблицу по информации, хранящейся в свойствах FieldDefs, Fields.

procedure DeleteIndex (const Name: String) — уничтожает индекс с именем Name.

procedure EditKey – переводит в режим редактирования (dsSetKey) буфер поиска;

procedure EditRangeEnd — позволяет изменить конечное значение диапазона фильтрации по индексным полям;

procedure EditRangeStart — позволяет изменить начальное значение диапазона фильтрации по индексным полям;

procedure EmptyTable — удаляет все записи из таблицы;

function FindKey (const KeyValues: array of const): Boolean — отыскивает запись по указанным значениям KeyValues ключевых полей и возвращает True в случае успеха;

procedure FindNearest (const KeyValues: array of const) — перемещает курсор на запись, наиболее полно удовлетворяющую указанным значениям KeyValues ключевых полей;

procedure GetProviderAttributes (List : TList) — получает из BDE и помещает в список List языковый драйвер, маршрут доступа и имя таблицы;

function GotoKey:   Boolean – ищет запись, ключевые поля которой соответствуют значениям, связанным с предыдущими вызовами StartKey или EditKey. В случае успеха перемещает курсор на найденную запись и возвращает true;

procedure GotoNearest — перемещает курсор на запись, наиболее полно удовлетворяющую значениям ключей, установленных методами SetKey или EditKey.

procedure RenameTable (const NewTableName:   String) – переименовывает файл связанный с текущим НД;

procedure SetKey — переводит таблицу в режим dsSetKey и очищает буфер ключей. С помощью FieldByName программа должна установить новый набор ключей и с помощью ApplayRange отфильтровать НД по индексным ключам;

procedure SetRange (const StartValues, EndValues: array of const) — переводит таблицу в режим dsSetKey, устанавливает новый набор начальных StartValues и конечных EndValues значений буфера ключей и фильтрует НД по индексным ключам;

procedure SetRangeEnd — переводит таблицу в режим dsSetKey и очищает буфер конечных значений ключей. С помощью FieldByName программа должна установить новый набор ключей и с помощью ApplayRange отфильтровать НД по индексным ключам;

procedure SetRangeStart — переводит таблицу в режим dsSetKey и очищает буфер начальных значений ключей. С помощью FieldByName программа должна установить новый набор ключей и с помощью ApplayRange отфильтровать НД по индексным ключам;

procedure UnlockTable (LockType: TLockType) — отменяет блокировку таблицы (см. LockTable).

Как видно из рассмотренных свойств и методов большинство из них используются для работы с индексами таблицы. Текущий индекс используется для сортировки, поиска записей и установки связей между таблицами. Понятие индекса тесно связано с понятием ключа в теории БД, в связи с этим они могут быть простыми и сложными, уникальными и неуникальными и т.д.  Индексов у одной таблицы может быть множество, они могут обладать различными свойствами и состоять из одного или более полей.

Использование индексов

Свойство   IndexDefs   компонента   TTable  содержит   ссылку   на  объект   класса TIndexDefs. С помощью свойств и методов этого класса можно получить информацию об индексах таблицы. В частности, свойство Count возвращает количество индексов, а свойство   Items[Index:   Integer]:   TIndexDef  — открывает доступ к набору объектов типа TIndexDef, каждый из которых содержит информацию о конкретном индексе. Index должен принадлежать диапазону 0…Count — 1.

Основные свойства класса TIndexDef:

CaselnsFields: String – содержит перечень полей, которые будут учитывать разницу в высоте букв.

DescFields: String – содержит перечень полей, в которых значения сортируются в нисходящем порядке;

Expression: String — содержит индексное выражение.

Fields: String – содержит список полей, по которым построен индекс. Поля в строке разделены точкой с запятой.

Name:   String – содержит имя индекса.

Options:   TIndexOptions      — определяет характеристики индекса: ixPrimary — первичный индекс; ixUnique -уникальный индекс; ixDescending — сортировка по нисходящему значению; ixNonMaintained — индекс не обновляется автоматически в момент открытия таблицы; ixCaselnsensitive — учитывается высота букв в строковых полях.

Основные методы класса TIndexDefs:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]