Компоненты Data Access


Компонент TDatabase - часть 3


Рис. 8 Приложение для ввода данных в таблицу ORACLE

Значения свойств компонентов созданного приложения приведены в таблице 1. Особо отметим, что свойство CachedUpdates компонента Table1должно иметь значение true.

Таблица 1.

Компонент Свойство Значение
Database1 DatabaseName my_database
  Params

SERVER NAME=ORA USER NAME=USER1 NET PROTOCOL=TNS OPEN MODE=READ/WRITE SCHEMA CACHE SIZE=8 LANGDRIVER=ancyrr SQLPASSTHRU MODE=SHARED AUTOCOMMIT SCHEMA CACHE TIME=-1 MAX ROWS=-1 BATCH COUNT=200 ENABLE SCHEMA CACHE=FALSE SCHEMA CACHE DIR= ENABLE BCD=FALSE ENABLE INTEGERS=FALSE LIST SYNONYMS=NONE ROWSET SIZE=20 BLOBS TO CACHE=64 BLOB SIZE=32 PASSWORD=u

Table1 Active true
CachedUpdates true
DatabaseName my_database
TableName CLIENTS
DataSource1 DataSet Table1
DBGrid1 DataSource DataSource1
DBNavigator1 DataSource DataSource1
DBImage1 DataSource DataSource1
DataField IMAGE
  LoginPrompt false
Button1 Caption Сохранить
Button2 Caption Отменить
Button3 Caption Выход

Нажатие на кнопки Button1 и Button2 приводит к попытке сохранения данных на сервере и к отмене внесенных изменений соответственно.

//--------------------------------------------------------------------------- #include <vcl\vcl.h> #pragma hdrstop #include "appl1.h" //--------------------------------------------------------------------------- #pragma link "Grids" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Table1->ApplyUpdates(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Table1->CancelUpdates(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { Close(); } //---------------------------------------------------------------------------

При выполнении метода Post компонента Table1 новые записи накапливаются в кэше, а изменений в таблице, хранящейся на сервере, не происходит, что можно проконтролировать, например, с помощью утилиты Database Explorer. При нажатии на кнопку "Сохранить" внесенные записи переносятся на сервер, что также можно проконтролировать, перечитав редактируемую таблицу (рис.9):

Рис.9. Перенос содержимого кэша на сервер

| |




Содержание  Назад  Вперед