Шаг 16.
Технология ADO.
Пример. Пакетная обработка данных

    На этом шаге мы рассмотрим пример приложения, иллюстрирующего пакетную обработку данных.

    Приложение имеет следующий вид (рисунок 1) :


Рис. 1. Приложение в работе

    Приложение позволяет использовать режим пакетной обработки данных. Для этого используется компонент CheckBox1. При щелчке по этому компоненту включается или отключается режим пакетной обработки. Обработчик данного события имеет следующий вид:

   procedure TForm1.CheckBox1Click(Sender: TObject);
   Begin
   Datamodule1.ADOTable1.Close;
   if checkBox1.Checked
      then Datamodule1.ADOTable1.LockType:=ltBatchOptimistic
      else Datamodule1.ADOTable1.LockType:=ltOptimistic;
   Datamodule1.ADOTable1.Open;
   Datamodule1.ADOTable1.Filtered:=True;  
   End;

    Щелчок по кнопке "Показать изменяемые записи" в режиме пакетной обнаботки позволяет отобразить измененные записи, которые хранятся в локальном кэше. Для этого используется фильтрация, осуществляемая с помощью свойства FilterGroup компонента ADOTable1.

   procedure TForm1.Button3Click(Sender: TObject);
   Begin
   if checkBox1.Checked
      then Datamodule1.ADOTable1.FilterGroup:=fgPendingRecords;
   End;

    Щелчок по кнопке "Назад" позволяет отобразить все имеющиеся записи путем установки свойства FilterGroup компонента ADOTable1 в fgNone.

   procedure TForm1.Button4Click(Sender: TObject);
   Begin
   if checkBox1.Checked
      then Datamodule1.ADOTable1.FilterGroup:=fgNone;
   End;

    Щелчок по кнопке "Подтвердить" в режиме пакетной обнаботки позволяет подтвердить сделанные изменения путем отправления измененных записей в базу данных с помощью метода UpdateBatch.

   procedure TForm1.Button1Click(Sender: TObject);
   Begin
   if checkBox1.Checked
      then Datamodule1.ADOTable1.UpdateBatch();
   End;

    Щелчок по кнопке "Отмена" в режиме пакетной обработки позволяет отменить сделанные изменения с помощью метода CancelBatch.

   procedure TForm1.Button2Click(Sender: TObject);
   Begin
   if checkBox1.Checked
      then Datamodule1.ADOTable1.CancelBatch();
   End;

    Обработчик события OnPostError компонента ADOTable1 позволяет обрабатывать ошибки при попытке поместить в базу данных неверные данные. Если режим пакетной обработки отключен. И если попытаться очистить имя или фамилию какого-либо игрока (эти поля обязательно должны содержать данные), то возникнет иссключение и появится сообщение "Неверный ввод".

   procedure TDataModule1.ADOTable1PostError(DataSet: TDataSet;
          E: EDatabaseError; var Action: TDataAction);
   Begin
   Action:=daAbort;
   ShowMessage('Неверный ввод!!!');
   ADOTable1.Cancel;
   End;

    Полный текст этого приложения можно взять здесь. Файлы базы данных, используемой в приложении можно взять здесь.

   




Предыдущий шаг Содержание