Реферат: Модель briefcase средствами MIDAS
Чтение и запись данных из локального кэша
Для чтения данных из локального кэша у ClientDataSet есть метод LoadFromFile:
procedure TForm1.act_ConnectLocalExecute(Sender: TObject); begin with cdsParams do begin RemoteServer:=nil; FileName:=ExtractFilePath(Application.ExeName) + LocalFile; LoadFromFile(FileName); end; end; |
Для записи в локальный кэш – метод SaveToFile:
with cdsParams do SaveToFile(ExtractFilePath(Application.ExeName) + LocalFile); |
Опять же никаких сюрпризов.
Сохранение данных на сервер, отмена сделанных изменений
Для сохранения данных на сервер предназначен метод CilentDataSet-а ApplyUpdates. Параметр данного метода указывает макисимально допустимое количество ошибок при передаче данных на сервер.
procedure TForm1.act_SaveToServerExecute(Sender: TObject); begin if cdsParams.Active and (cdsParams.ApplyUpdates(0) = 0) then act_RemoteConnect.Execute; end; |
При возникновении ошибки генерируется событие OnReconcileError. Обработка ошибки осуществляется с помощью стандартного модуля обработчика ошибки, подключить этот модуль в проект можно, выбрав ReconcileErrorDialog на закладке Dialogs (File/New/Other). Обработчик OnReconcileError будет выглядеть при этом следующим образом:
procedure TForm1.cdsParamsReconcileError(DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction); begin Action:=HandleReconcileError(DataSet, UpdateKind, E); end; |