BigEdu.ru

Модель briefcase средствами MIDAS

Модель briefcase средствами MIDAS

Михаил Голованов

В прошлом номере журнала я писал о реализации модели Briefcase с помощью ADO. В отличие от ADO, средства работы с отключенными наборами данных в MIDAS были реализованы с самой первой версии. Реализация модели Briefcase средствами MIDAS несколько проще, хотя и здесь есть свои подводные камни.

Приложение MIDAS состоит из двух частей: сервера приложений и тонкого клиента. Сервер приложений «общается» с сервером БД (или другим источником данных), реализует бизнес-правила и предоставляет тонкому клиенту данные по запросу. Функция тонкого клиента – это отображение данных пользователю.

В качестве примера мы спроектируем простой сервер приложений и тонкий клиент для работы с базой, описанной в предыдущей части статьи. Сервер приложений реализуем как модуль MTS/COM+. Никаких особенностей создания сервера приложений для модели briefcase нет, поэтому я не буду описывать этот процесс в деталях. В IDE Delphi создадим новый проект приложения для MTS/COM+, выбрав пункт меню File/New/Other, и в появившемся диалоге выберем пункт ActiveX Library с закладки ActiveX. Затем включим в проект новый удаленный модуль данных (File/New/Other и пункт Transactional Datamodule с закладки Multitier).

В удаленном модуле данных разместим следующие компоненты и установим значения их свойств согласно таблице 1, приведенной ниже.

Компонент Свойство Значение
Conn:TADOConnection ConnectionString Настроить на соединение с БД
adsParams:TADODataSet Connection Conn
CommandText CommandText select * from Params
dspParams:TDataSetProvider DataSet adsParams

Таблица 1

Откомпилируйте проект сервера и установите полученную dll в новое MTS/COM+-приложение c именем MIDAS_briefcase, с помощью пункта меню Run/Install COM+ Object.

Тонкий клиент представляет собой DeskTop-приложение. Для связи с сервером приложений клиент использует один из компонентов типа Connection с закладки DataSnap (мы воспользуемся DCOMConnection) и специальный DataSet – ClientDataSet.

В таблице 2 приведены свойства, влияющие на работу компонентов тонкого клиента с сервером приложений, а также их значения.

Компонент Свойство Значение
DCOMConn:TDCOMConnection ServerName Project1.MIDAS_bc
LoginPrompt false
cdsParams:TClientDataSet RemoteServer DcomConn
ProviderName dspParams

Таблица 2

Внешний вид формы приложения тонкого клиента приведен на рисунке 1.

Рисунок 1

Получение данных с центрального сервера

Получение данных с сервера приложений аналогично приведенному в примере для ADO. Код приведен ниже.

procedure TForm1.act_RemoteConnectExecute(Sender: TObject);

begin

try

with cdsParams do try

Close;

RemoteServer:=DCOMConn;

FileName:='';

Active:=true;

except on E:Exception do

MessageDlg(Format('Ошибкаподключенияксерверу: %s', [E.Message]),

mtError, [mbOk], 0);

end;

finally

DCOMConn.Close;

end;

Все просто, но для подключения к серверу надо не забывать сбрасывать имя файла кэша (свойство FileName) и закрывать соединение с сервером после получения данных.

Чтение и запись данных из локального кэша

Для чтения данных из локального кэша у 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);

be

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике и программированию Модель briefcase средствами MIDAS Михаил Голованов В прошлом номере журнала я писал о реализации модели Briefcase с помощью ADO. В отличие от
Оценок: 1002 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru