Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4

Кент Рейсдорф. BORLAND C++BUILDER. Страница 464

Изменение TDataSet типа read-only будет рассмотрено позже, при обсуж­дении компонента UpdateSQL.

On...Error

События OnEditError, OnDeleteError и OnPostError позволяют вам реа­гировать на ошибки, происходящие при модификации данных в TDataSet. Обработчикам всех этих событий передаются три параметра: TDataSet, в котором произошла ошибка, класс исключения, вызванного ошибкой и параметр var, позволяющий вам указать действие, которое должно быть выполнено после вызова обработчика. Далее приводится пример обработчи­ка, сгенерированного C++Builder для событий On...Error:

void fastcall TForml::TablelDeleteError(TDataSet *TDataSet,

EDatabaseError *E, TDataAction SAction) {

}

Вы можете установить для Action любое из трех значений: daFail, daAbort или daRetry.

TQuery

Модуль: DBTables Класс-предок: TDBDataSet

Так же, как и ТТаЫе, TQuery является прямым потомком класса DBDataSet и косвенным потомком класса TDataSet. TQuery используется для посылки явных операторов SQL системе управления базой данных. Эти SQL выполняются над локальными таблицами или передаются серверу базы дан­ных. Для выполнения запроса и возврата результата, нужно использовать метод Open или установить для свойства Active значение true. Предполагая, что запрос удовлетворяет ограничениям C++Builder на «активные» запросы, вы можете затем рассматривать результат как таблицу, что примерно соот­ветствует работе оператора SQL VIEW на многих серверах баз данных. Вы можете изменить, добавить и удалить строки этой таблицы точно так же, как при использовании компонента ТТаЫе.

В таблицах 16.11, 16.12 и 16.13 перечислены соответственно основные свойства, методы и события компонента TQuery.

Таблица 16.11. Основные свойства TQuery

I Свойство Описание
Active Открывает и закрывает TDataSet.
AutoCalcFields Определяет способ вычислений с использованием полей.
Bof Показывает, находится ли TDataSet на начале.
CachedUpdates Определяет, будут ли кэшироваться обновленные данные.
Constrained Контролирует допустимые изменения для активных результатов.
Database Идентифицирует TDatabase, используемый TDataSet.
DatabaseName Устанавливает псевдоним, используемый для соединения с базой данных.
DataSource Определяет TDataSource для получения параметров запроса.
DBHandle Возвращает дескриптор низкоуровневого соединения BDE.
Eof Показывает, достигнут ли конец TDataSet.
FieldCount Возвращает количество полей в TDataSet.
FieldDefs Содержит информацию о полях TDataSet.
Fields (Индексируемое) возвращает указанное поле TDataSet.
Filter Определяет выражение, используемое для фильтрации записей.
Filtered Определяет, какая фильтрация используется: указанная в Filter или в OnFilterRecord.
FilterOptions Управляет работой фильтров.
Handle Возвращает дескриптор низкоуровневого курсора BDE.
Modified Показывает, была ли данная запись изменена с момента последнего Post или Cancel.
ParamCount Показывает количество параметров SQL-запроса.
Params Определяет параметры, используемые для SQL-запроса.
Prepared Показывает, готов ли запрос.
RecordCount Возвращает количество строк в TDataSet.
RequestLive Определяет, будут ли результаты запроса изменяемыми.
SessionName Указывает, какой компонент TSession используется для соединения с базой данных.
SQL Определяет SQL-операторы для выполнения на сервере.
State Возвращает состояние TDataSet (например, dsEdit или dsBrowse).
StmtHandle Возвращает низкоуровневый дескриптор BDE для последнего результата запроса.
UniDirectional Устанавливает движение курсора только в одном направлении.
UpdateMode Определяет тип SQL, используемого для изменения данных.
UpdateObject Определяет компонент UpdateSQL для использования совместно с кэшируемыми изменениями.
551 день Щ',1
Таблица 16.12. Основные методы TQuery
Метод Функция
Append Добавляет пустую строку к TDataSet и переводит его в режим редактирования.
AppendRecord Добавляет строку к TDataSet, используя указанные значения.
ApplyUpdates Сохраняет кэшированные изменения в базе данных.
Cancel Отменяет ждущее изменение текущей строки.
CancelUpdates Отменяет ждущие изменения, занесенные в кэш.
ClearFields Устанавливает для полей текущей строки значения по умолчанию.
Close Закрывает TDataSet.
Delete Удаляет текущую запись.
Edit Переводит TDataSet в режим редактирования.
ExecSQL Выполняет SQL без возврата курсора.
FetchAII Считывает все строки базы данных, ожидающие своей очереди.
FieldByName Возвращает TField, используя имя поля в базе данных.
FindKey Выполняет точный поиск в TDataSet.
GetFieldNames Возвращает список полей в TDataSet.
Insert Вставляет пустую строку и позволяет ее редактировать.
InsertRecord Вставляет строку, используя заданные значения столбцов.
Locate Осуществляет поиск записи в TDataSet.
Lookup Осуществляет поиск записи в TDataSet и возвращает значения ее полей.
MoveBy Перемещает курсор TDataSet на заданное количество строк.
Open Открывает TDataSet.
ParamByName Возвращает параметр запроса по его имени.
Post Сохраняет ждущие изменения текущей строки.
RevertRecord Отменяет кэшированные изменения текущей строки.
Таблица 16.13. Основные события TQuery
Событие Условие возникновения
AfterCancel После вызова Cancel.
AfterClose После закрытия TDataSet.
AfterDelete После вызова Delete.
AfterEdit После вызова Edit.
Afterlnsert После вызова Insert.
AfterOpen После открытия TDataSet.
AfterPost После вызова Post.
BeforeCancel Перед выполнением Cancel.
BeforeClose Перед закрытием TDataSet.
BeforeDelete Перед выполнением Delete.
BeforeEdit Перед выполнением Edit.
Beforelnsert Перед выполнением Insert или Append.
BeforeOpen Перед открытием TDataSet.
BeforePost Перед выполнением Post.
OnCalcField При необходимости ввода значений в вычисляемые поля.
OnDeleteError При ошибке удаления записи.
OnEditError При ошибке редактирования записи.
OnFilterRecord В режиме фильтрации, когда TDataSet требует строку.
OnNewRecord При добавлении новой записи к TDataSet.
OnPostError При ошибке сохранения записи.
OnUpdateError При ошибке во время сохранения обновленного содержимого кэша.
OnUpdateRecord При сохранении каждой строки с помощью ApplyUpdates.

Ключевые элементы

Web-дизайн (с) 2010 All rights reserved