Отсоединяет все связанные с ним компоненты TTable TQuery и TStoredProc.
procedure CloseDatasets;
Отсоединяет все дочерние компоненты класса TDataSet, но сам компонент остается открытым.
procedure Commit;
Фиксирует все изменения, проведенные транзакцией. Этот метод можно использовать только при наличии связи с базой данных.
procedure Open;
Соединяет компонент с сервером или BDE в случае использования СУБД Paradox или dBase.
procedure Rollback;
Отменяет все действия, совершенные транзакцией, то есть запрещает ее фиксацию.
procedure StartTransaction;
Начинает выполнение транзакции, используя уровень изоляции из свойства Translsolation. Этот метод рекомендуется использовать только при наличии связи с базой данных.
34 Компоненты Delphi для работы с БД: TTable (свойства и методы, используемые для подключения таблиц).
Компонент Tтаblе инкапсулирует таблицу реляционной базы данных, причем независимо от типа базы данных. Для доступа к данным компонент использует функции BDE (см. выше).
Необходимая для работы база данных задается свойством DatabaseName, в котором можно указать зарегистрированный в BDE псевдоним БД или полный путь к файлам БД.
Таблица БД, на основе которой создается набор данных, определяется свойством TableName. При необходимости тип таблицы задается свойством TаblеТуре, хотя обычно это свойство имеет значение ttDefault (см. табл. 16.4), которое включает автоматическое определение типа таблицы по расширению файла.
Примечание
Свойство ТаblеТуре работает только в локальных БД. Обратите внимание, что возможные значения свойства соответствуют основным типам локальных драйверов BDE.
При помощи методов Open и close набор данных открывается и закрывается. О его состоянии можно судить по значению свойства Active. Более подробно о состоянии набора данных расскажет свойство state (см. ниже).
Записи в набор данных можно отбирать при помощи свойств Filter, Filtered, FilterOptions, создающих фильтр, ограничивающий набор данных по значениям данных в одном или нескольких полях.
Методы SetRangeStart, SetRangeEnd, SetRange, ApplyRange, EditRangeStart, EditRangeEnd создают специальный диапазон включаемых в набор данных записей, отбор в диапазон проводится по задаваемым граничным значениям любых полей набора данных.
Поиск нужной записи можно осуществлять методами Lookup или Locate (достаточно просто, но не очень быстро) или, используя существующие в таблице базы данных индексы, методом FindKey (сложнее, но очень быстро).
От предков компонент унаследовал инструменты для работы с закладками. Это свойство Bookmark и методы GetBookmark, FreeBookmark, GotoBookmark.
Работа с полями осуществляется целой группой свойств и методов, среди которых особое место занимает свойство Fields, представляющее собой индексированный список всех полей набора данных. Это свойство удобно использовать в процессе разработки для организации доступа к полям.
Использование индексов обеспечено свойствами indexName, indexFieids, IndexFieldNames, IndexFiles.
Свойства MasterSource, MasterField, IndexName дают возможность установить отношение типа главный/подчиненный с другой таблицей.
Очень полезны в практическом использовании методы и свойства для работы С буфером изменений (свойства CachedUpdates, PendingUpdates, UpdateRecordTypes, МСТОДЫ ApplyUpdates, CancelUpdates, CommitUpdate, RevertRecord). Буфер применяется в клиентских приложениях многоуровневых систем доступа к данным.
От классов TDataSet и TBDEDataSet унаследован обширный набор методов-обработчиков событий, позволяющий решать любые задачи по управлению набором данных.
В табл. 16.8 приведена справочная информация о свойствах и методах компонента ттаble. После этого рассматриваются подробности применения основных механизмов набора данных.
Таблица 16.8. Свойства и методы класса Tтаblеl
Объявление
Тип
Описание
Свойства
property DataSource: TDataSource;
Pu, Ro
Ссылается на компонент TDataSource главного набора данных в отношении главный/подчиненный
property Defaultlndex: Boolean;
Pb
Управляет сортировкой данных. При значении True записи упорядочиваются по первичному ключу. При значении False упорядочивание не производится
property Exclusive: Boolean;
Pb
Ограничивает доступ к таблице. При значении True с таблицей может работать только одно приложение. Это свойство важно при одновременной работе нескольких приложений с данными в локальной сети
property Exists: Boolean;
Pu, Ro
Значение True говорит о том, что связанная с компонентом таблица базы данных существует
property IndexDef s: TindexDefs;
Pb
Содержит информацию об индексах таблицы
property IndexFieldCount: Integer;
Pu, Ro
Возвращает число полей в текущем индексе таблицы
property IndexFieldNames: string;
Pb
Разделенный запятыми список названий полей, составляющих текущий индекс. Используется для таблиц серверов SQL
property IndexFields: [Index: Integer]: TField;
Pu
Индексированный список полей текущего индекса
property IndexFiles: TStrings;
Pb
Список индексных файлов для таблиц dBASE
property IndexName: string;
Pb
Определяет вторичный индекс для таблицы. Используется для таблиц локальных СУБД
property KeyExclusive: Boolean;
Pu
Управляет границами диапазона, задаваемого методом SetRange. При значении True крайние записи в диапазон не включаются
property KeyFieldCount: Integer;
Pu
Содержит число полей ключа, используемых при поиске. При значении 0 применяется только первое поле, при значении 1 — два первых поля и т. д. По умолчанию устанавливается полное число полей ключа
property MasterFields: string;
Pb
Список имен полей главной таблицы, разделенных запятой, используемых при создании отношения главный/подчиненный
property MasterSource: TDataSource;
Pb
Содержит имя компонента TDataSource, связанного с набором данных, который является главным в отношении главный/подчиненный
property Readonly: Boolean;
Pb
Включает и отключает режим "только для чтения". В некоторых случаях набор данных можно открыть только в этом режиме
property StoreDef s: Boolean;
Pb
При значении True все сведения об индексах и структуре таблицы хранятся вместе с формой или модулем данных. В этом случае при создании набора данных одновременно создаются поля, индексы, ограничения
property TableLevel: Integer;
Pu
Содержит значение уровня таблицы, используемого в драйвере ВОЕ
Создает новый индекс. Параметр Name определяет имя нового индекса, параметр Fields — список полей индекса через запятую, параметр Options задает тип индекса
procedure ApplyRange;
Pu
Включает в работу границы диапазона, заданные методами SetRangeStart, SetRangeEnd или EditRangeStart, EditRangeEnd
type TBatchMode = (batAppend, batUpdate, batAppendUpdate, batDelete, batCopy);
function BatchMove (ASource: TBDEDataSet; AMode: TBatchMode): Longint;
Pu
Переносит записи из таблицы ASource в набор данных. Тип операции задается параметром AMode. Возвращает число обработанных записей
Удаляет текущий диапазон
Закрывает индексный файл для таблиц dBASE
procedure CreateTable;
Pu
Создает новую таблицу, основываясь на данных о структуре таблицы, содержащихся в свойствах FieldDef s и indexDef s. Если свойство FieldDef s пустое, используется свойство Fields. Структура и данные существующей таблицы перезаписываются
procedure Deletelndex (const Name: string);
Pu
Удаляет вторичный индекс
procedure DeleteTable;
Pu
Уничтожает таблицу базы данных. Набор данных при этом должен быть закрыт
procedure EditKey;
Pu
Переводит набор данных в режим редактирования буфера поиска. После использования этого метода можно изменять значения полей, которые применяются для поиска записей
procedure EditRangeEnd;
Pu
Разрешает редактирование нижней границы диапазона
procedure EditRangeStart;
Pu
Разрешает редактирование верхней границы диапазона
procedure EmptyTable;
Pu
Удаляет все записи из набора данных
function FindKey (const KeyValues: array of const): Boolean;
Pu
Проводит поиск записи, значения полей которой удовлетворяют условиям, заданным параметром KeyValues. Значения разделяются запятыми. Для поиска можно использовать только поля, входящие в текущий индекс. Для локальных стандартных таблиц BDE это поля, определяемые свойством indexName. Для таблиц серверов SQL индекс можно задать свойством indexFieldNames. При успешном поиске функция возвращает значение True
procedure FindNearest (const KeyValues: array of const);
Pu
Проводит поиск записи, значения полей которой, заданные параметром KeyValues, в минимальной степени отличаются от требуемых в большую сторону. Значения для поиска разделяются запятыми. Для поиска можно использовать толькополя, входящие в текущий индекс. Для локальных стандартных таблиц ВОЕ это поля, определяемые свойствомIndexName. Для таблиц серверов SQL индекс можно задать свойством indexFieldNames. При успешном поиске функция возвращает True
procedure GetlndexNames (List: TStrings);
Pu
Возвращает список индексов таблицы
procedure GotoCurrent (Table: TTable);
Pu
Синхронизирует курсор набора данных с курсором таблицы, заданной параметром Table
function GotoKey: Boolean;
Pu
Устанавливает курсор на запись, соответствующую значениям полей, заданным при последнем применении метода
SetKey или EditKey
procedure GotoNearest;
Pu
Устанавливает курсор на запись, точно соответствующую значениям полей, заданным при последнем применении метода SetKey или EditKey, или следующую ближайшую к ним по значениям
type TLockType = (ItReadLock, ItWriteLock); procedure LockTable (LockType: TLockType);
Pu
Закрывает доступ к таблице Paradox или dBASE из других приложений
Очищает буфер поиска. После использования этого метода можно изменять значения полей, используемые для поиска записей
procedure SetRange (const StartValues, EndValues:
array of const);
Pu
Задает диапазон отбора записей. Параметр StartValues определяет значения полей для верхней границы диапазона.
Параметр EndValues определяет значения полей для нижней границы диапазона. Значения диапазона задаются для полей текущего индекса
procedure SetRangeEnd;
Pu
Задает нижнюю границу диапазона. После этого метода необходимо задать значения для полей текущего индекса, которые и будут нижней границей
procedure SetRangeStart;
Pu
Задает верхнюю границу диапазона. После этого метода необходимо задать значения для полей текущего индекса, которые и будут верхней границей
type TLockType = (ItReadLock, ItWriteLock); procedure UnlockTable (LockType: TLockType);
Pu
Разблокирует таблицу Paradox или dBASE для доступа из других приложений
35 Компоненты Delphi для работы с БД: TTable (свойства и методы, используемые для перемещения по таблице).
Для навигации по таблице используется компонент DBNavi-gator (рис. 11.2.8) со страницы DataControl.
Положите на форму компонент DBNavigator (рис. 11.2.9).
Компонент объединяет в себе ряд кнопок: NbFirst перемещение к первой записи; NbPrior перемещение к предыдущей записи; NbNext перемещение к следующей записи;
NbLast перемещение к последней записи;
Nblnsert вставка новой записи в место, указанное курсором;
NbDelete удаление текущей записи;
NbEdit редактирование текущей записи;
NbPost внесение изменений после редактирования в БД;
NbCancel отмена результатов редактирования или добавления
новой записи; NbRef resh очистка буфера, связанного с набором данных.
Примечание. Для перемещения по записям таблицы можно воспользоваться методами компонента Table — First (на первую запись), Next (на следующую запись), Last (на последнюю запись), Pred (на предыдущую запись). Для определения начала и конца набора данных используются свойства EOF и BOF.
Для связи навигатора с набором данных установите свойство DataSource компонента DBNavigator в DataSourcel.
Для просмотра таблицы biolife необходимы кнопки NbFirst, NbPrior, NbNext, NbLast. Удалите лишние кнопки навигатора, изменив значение свойства VisibleButtons (установите значение False для всех кнопок, кроме необходимых для работы приложения).
Эксперимент. Запустите приложение. Убедитесь, что кнопки навигатора позволяют перемещаться по записям таблицы. ♦
Чтобы грамотно оформить приложение, работающее с БД, необходимо добавить соединение с набором данных в момент начала работы и разорвать его в момент окончания.
Vf4TaHOBHTe значение свойства Active компонента Table в F
сдайте обработчик события OnCreate формы:
procedure TForml.FormCreate(Sender: TObject);
begin
Tablel.Active:= true; end/
В обработчике события OnDestroy формы напишите:
procedure TForml.FormDestroy{Sender: TObject); begin
Tablel.Active:= false; end;
Эксперимент. Запустите приложение. Убедитесь, что ничего не изменилось в функционировании приложения. ♦
3-й способ. Использование редактора полей.
Отображение данных на форме в отдельных полях можно сделать автоматически.
Создайте новое приложение, сохраните файлы приложения в каталоге BioLife_3, файл проекта под именем Main.pas, файл проекта — BioLife_3.dpr.
Положите на форму компоненты DataSource и Table.
Измените значения свойств так же, как и при выполнении первого и второго способов.
Выполните двойной щелчок левой кнопкой мыши на компоненте Table 1, появится редактор полей (рис. 11.2.10). Щелкните правой кнопкой мыши и выберите из всплывающего меню Add all Fields (рис. 11.2.11).
В Инспекторе объектов измените свойство DisplayLabel каждого поля на значение, соответствующее заголовку, например, Notes — описание. Из всплывающего меню выберите Select all. Перетащите поля на форму, в результате чего автоматически создаются компоненты, отображающие данные.
Положите на форму DBNavigator для перемещения по записям таблицы.
Эксперимент. Запустите приложение. Убедитесь в работоспособности созданного приложения. ♦
36 Компоненты Delphi для работы с БД: TTable (свойства и методы, используемые для сортировки таблиц). 37 Компоненты Delphi для работы с БД: TTable (свойства и методы, используемые для фильтрования данных таблиц). 38 Компоненты Delphi для работы с БД: TTable (свойства и методы, используемые для манипулирования данными в таблицах).
Компонент Tтаblе инкапсулирует таблицу реляционной базы данных, причем независимо от типа базы данных. Для доступа к данным компонент использует функции BDE (см. выше).
Необходимая для работы база данных задается свойством DatabaseName, в котором можно указать зарегистрированный в BDE псевдоним БД или полный путь к файлам БД.
Таблица БД, на основе которой создается набор данных, определяется свойством TableName. При необходимости тип таблицы задается свойством TаblеТуре, хотя обычно это свойство имеет значение ttDefault (см. табл. 16.4), которое включает автоматическое определение типа таблицы по расширению файла.
Примечание
Свойство ТаblеТуре работает только в локальных БД. Обратите внимание, что возможные значения свойства соответствуют основным типам локальных драйверов BDE.
При помощи методов Open и close набор данных открывается и закрывается. О его состоянии можно судить по значению свойства Active. Более подробно о состоянии набора данных расскажет свойство state (см. ниже).
Записи в набор данных можно отбирать при помощи свойств Filter, Filtered, FilterOptions, создающих фильтр, ограничивающий набор данных по значениям данных в одном или нескольких полях.
Методы SetRangeStart, SetRangeEnd, SetRange, ApplyRange, EditRangeStart, EditRangeEnd создают специальный диапазон включаемых в набор данных записей, отбор в диапазон проводится по задаваемым граничным значениям любых полей набора данных.
Поиск нужной записи можно осуществлять методами Lookup или Locate (достаточно просто, но не очень быстро) или, используя существующие в таблице базы данных индексы, методом FindKey (сложнее, но очень быстро).
От предков компонент унаследовал инструменты для работы с закладками. Это свойство Bookmark и методы GetBookmark, FreeBookmark, GotoBookmark.
Работа с полями осуществляется целой группой свойств и методов, среди которых особое место занимает свойство Fields, представляющее собой индексированный список всех полей набора данных. Это свойство удобно использовать в процессе разработки для организации доступа к полям.
Использование индексов обеспечено свойствами indexName, indexFieids, IndexFieldNames, IndexFiles.
Свойства MasterSource, MasterField, IndexName дают возможность установить отношение типа главный/подчиненный с другой таблицей.
Очень полезны в практическом использовании методы и свойства для работы С буфером изменений (свойства CachedUpdates, PendingUpdates, UpdateRecordTypes, МСТОДЫ ApplyUpdates, CancelUpdates, CommitUpdate, RevertRecord). Буфер применяется в клиентских приложениях многоуровневых систем доступа к данным.
От классов TDataSet и TBDEDataSet унаследован обширный набор методов-обработчиков событий, позволяющий решать любые задачи по управлению набором данных.
39 Компоненты Delphi для работы с БД: TDataSource (назначение, свойства, методы события).
Невизуальный компонент DataSource представляет собой источник данных, который обеспечивает связь между набором данных и компонентами отображения и редактирования данных. Все наборы данных должны быть связаны с компонентом источника данных, если требуется редактирование данных. Основное свойство источника данных – DataSet. Оно указывает на компонент набора данных (Table, Query и др), с которыми связан источник. Свойство State дает информацию о текущем состоянии набора данных: находится ли он в состоянии редактирования, вставки данных и так далее. Основные методы Edit – подтверждает возможность редактирования набора данных (не путать этот метод с методом Edit из набора TDataSet). Объявление: procedure Edit; IslinkedTo – проверяет связь источника с указанным набором данных. Обычно напрямую не используется, а применяется при разработке новых компонентов. Объявление: function IslinkedTo(DataSet: TDataSet):Boolean;
События OnDataChange – наступает при перемещении на новое поле или новую запись, если текущая запись редактировалась. OnStateChange – наступает при изменении состояния набора данных, связанного с данным источником. OnUpdateData – наступает, когда намечается обновление текущей записи.
Основные свойства AutoEdit определяет, вызывается ли автоматически метод редактирования данных Edit. DataSet набор данных, с которым связан компонент. Enabled определяет, отображается ли данные в компонентах отображения, связанных с этим источником. State – указывает текущее состояние набора данных, связанного с источником данных.
40 Компоненты Delphi для работы с БД: TField (назначение, свойства, методы события).
TObject->TPersistent->TComponent-”TField Модуль DB
В Палитре компонентов отсутствует
Предназначен для работы с полями таблиц баз данных. Отсутствует в Палитре компонентов, так как является абстрактным компонентом и выступает предком для ряда типизированных компонентов (см. рис. 4.17), которые наследуют все базовые свойства и методы для работы с полями. Объекты-наследники автоматически создаются для каждого используемого приложением поля при выполнении приложения. Эти компоненты создаются динамически в случае определения значения True для свойства Active компонентов TTable и TQuery. Компонент TField играет важную роль для приложений, работающих с базами данных, так как предоставляет возможность прямого доступа к полям таблиц. Каждый компонент содержит не только сведения о типе данных, наборе значений и т. п., но и предоставляет информацию, которая используется визуальными компонентами отображения данных. В процессе разработки работа с компонентами TField осуществляется при помощи Редактора полей.
Свойства компонента
^Ъ) property Alignment: TAlignment;
Содержит способ выравнивания (см. главы 1, 2) компонента и используется визуальными компонентами TDBGrid и TDBEdit.
property AsBoolean: Boolean-
Содержит значение для TBooleanField. Для TStringField возвращает True, если поле начинается с символов Y,y,T,t (Yes, yes, True, true).
property AsDateTime: TDataTime;
Содержит значение для TDateTimeField или TTimeField. Для TStringField проводит конвертацию.
property AsFloat: Double;
Содержит значение для TFloatField, TBCDField, TCurrencyField. Для TStringField проводит конвертацию.
property Aslnteger: Longing-
Содержит значение для TIntegerField, TSmallintField, TWordField. Для TStringField проводит конвертацию.
property AsString: String;
Содержит значение для TStringField. Для TBCDField, TFloatField, TCurrencyField, TDateTimeField, TTimeField, TIntegerField, TSmallintField, TWordField проводит конвертацию. Для TBooleanField возвращает True, если текст начинается с символов Y,y,T,t. Для TMemoField, TGraphicField, TBIobField, TBytesField, TVarBytesField используется только для чтения и возвращает строки "Memo", "Graphic", "Blob", "Bytes", "VarBytes".
(Pb) property Calculated: Boolean;
Содержит True, если поле вычисляемое.
(Ro) property CariModify: Boolean;
Определяет возможность изменения характеристик поля.
property DataSet: TDataSet;
Идентифицирует набор данных поля.
60) property DataSize: Word;
Содержит число байт, необходимое для размещения компонента в памяти.
Содержит заголовок поля, используемый компонентом TDBGrid.
Ro) property DisplayName: PString;
Содержит имя поля. Используется аналогично свойствам DisplayLabel или FieldName других компонентов.
^o) property DisplayText: String;
Содержит символьное представление значения поля, используемое визуальными компонентами в состоянии Edit.
^b) property DisplayWidth: Integer;
Отражает ширину в символах поля, используемого компонентом TDBGrid.
property EditMask: String;
Служит для создания шаблона, ограничивающего данные, выводимые в поле. Маска состоит из трех секции, разделяемых точкой с запятой. Первая содержит тело маски. Вторая содержит символ, определяющий, будут ли буквенные символы маски сохраняться как часть данных (0 — не сохраняются, 1 — сохраняются). Третья содержит символ, определяющий пробел для маски.
(Ro) property EditMaskPtr: PString;
Является указателем на строку свойства EditMask.
(Pb) property FieldName: String;
Содержит имя, которое поле имеет в таблице базы данных.
(Re) property FieldNo: Integer;
Порядковый номер компонента в наборе данных.
(Pk) property Index: Integer;
Номер компонента в массиве свойства Fields набора данных. Изменение значения этого свойства приводит к изменению расположения поля в наборе данных.
(Ro) property IsIndexField: Boolean;
В состоянии True означает, что поле индексировано.
(Ro) property IsNull: Boolean;
Находится в состоянии True, если текущее поле пустое.
(Pb) property Readonly: Boolean;
Определяет режим редактирования текущего поля. Значение True определяет режим "Только для чтения".
(№) property Required: Boolean;
В значении True означает, что поле обязательно должно быть не пустым.
property Size: Word;
Определяет размер поля, размещаемого в наборе данных.
property Text: String;
Содержит символьное представление значения текущего поля в режиме Edit, используется визуальными компонентами отображения данных.
(Pb) property Visible: Boolean;
Определяет режим отображения компонента.
Обработчики событий
(Pb) property OnChange: TFieldNotifyEvent; TFieldNotifyEvent = procedure(Sender: TField! of object;
Реагирует на изменение значений полей компонента. Если поле связано с визуальным компонентом отображения данных, то обработчик вызывается только при попытке изменить текущую запись.
(Pb) property OnGetText: TFieldGetTextEvent; TFieldGetTextEvent = procedure(Sender: TField; var Text: String; DisplayText: Boolean) of object;
Обрабатывает обращение к свойствам DisplayText и Text. Обработчик работает с DisplayText при использовании режима просмотра и Text при режиме редактирования.
Используется при переопределении значения свойства Text.
(Pb) property OnValidate: TFieldNotifyEvent;
Реагирует на редактирование содержимого компонента. Обработчик вызывается для визуальных компонентов отображения данных только при попытке изменения записи.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление