Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 463
Дополнительное преимущество кэширования заключается в возможности изменения компонентов TDataSet, предназначенных только для чтения. Наличие контроля за SQL, сгенерированными для обновления TDataSet, позволяет вам написать код, модифицирующий данные.
Для работы с кэшируемыми изменениями предназначены четыре метода: ApplyUpdates, CancelUpdates, CommitUpdates и RevertRecord. Их функции сведены в следующую таблицу:
Метод | Функция |
ApplyUpdates | Сохраняет кэшированные изменения в базе данных. |
CancelUpdates | Отменяет кэшированные изменения. |
CommitUpdates | Уведомляет кэш о сохранении изменений. |
RevertUpdates | Возвращает строку в состояние, которое она имела до изменения, занесенного в кэш. |
Существует также несколько свойств, относящихся непосредственно к каптируемым изменениям: | |
Свойство | Описание |
CachedUpdates | Включает и выключает режим кэширования изменений. |
UpdateRecordType | Определяет строки, видимые в кэше. |
Использование кэша в приложении выглядит следующим образом:
1. Установите значение true для свойства CachedUpdates того компонента TDataSet, изменения в котором вы хотите кэшировать.
2. С помощью свойства UpdateRecordTypes определите строки, которые будут кэшироваться. Это свойство представляет собой набор и может иметь следующие значения: rtModified, rtlnserted, rtDeleted и rtUnmodi- fied. Перечисленные значения определяют тип строк, видимых в том TDataSet, изменения которого будут кэшироваться.
3. Установите обработчик события OnUpdateError для обработки ошибок, которые могут возникнуть при вызове ApplyUpdates.
4. Измените данные TDataSet.
5. Вызовите метод ApplyUpdates для сохранения изменений или метод Сап- celUpdates для их отмены.
Кэширование изменений находит хорошее применение в формах, предназначенных для ввода данных. Существуют три основных типа форм, работающих с базами данных: формы поддержки принятия решений, формы обработки транзакций и формы ввода данных. Поскольку пользователи форм ввода данных обычно добавляют новые строки, имеет смысл кэшировать их локально и затем сохранять за одно обращение к базе данных. Это уменьшит время, в течение которого таблица недоступна, и ускорит работу приложения.