Н. 3. Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
Key Fields:
Puc. 3.10. UpdateSQL editor
Добавим в запрос вычисляемое поле STATUS для отображения состояния записи в кэше, уберем часть полей из списка отображаемых колонок DBGridl, внесем изменения в существующие обработчики событий и добавим несколько новых (для события OnCalcField компонента Query 1 и для события OnClick компонента CheckBoxl): //.....................................................
#include <vc/\vc/.h>
#pragma hdrsfop
^include "app/1.h" //.....................................................
#pragma//nk "Grids"
#pragma resource "*.dfnT TForml *Form1 ;
//-
_fasfca//TForml : : TForml (TComponent* Owner)      : Т Form (Owner)
{
} //..........•..........................................
vo/d_fasfca//TForml : :SuffOnlC//ck(TObjecf * Sender)
{
56
Компоненты Data Access, используемые в приложениях клиент/сервер
Query! ->ApplyUpdatesf);
}
//..........................................................
void _fastcall TForml::Button3Click(TObject *Sender)
{
Close();
} //..........................................................
void _fastcall TForml::Button2Click(TObject *Sender)
{
Query! ->CancelUpdates();
}
//..........................................................
void _fastcall TForml::Query1CalcFields(TDataSet *DataSet) {
AnsiString UpdStrf] = {"He изменялась", "Изменена",
"Добавлена", "Удалена"}; if (Query! ->CachedUpdates)
Query1STATUS->Value=UpdStr[Query1->UpdateStatus()]; } //..........................................................
void _fastcall TForml::CheckBox1Click(TObject *Sender) {
Queryl ->CachedUpdates=CheckBox1->Checked; } //..........................................................
Если перед запуском приложения запустить утилиту SQL Monitor, то можно пронаблюдать, как генерируются запросы, содержащиеся в свойствах компонента UpdateSQLl, при использовании кэширования и без него, а также как отображается состояние конкретной записи при кэшировании (рис. 3.11).
57