function TrdmCommon.Get_ClientName(ClientID: Integer): WideString;
begin
lock;
try
with spClientFullName do
begin
paramByName('ID').AsInteger
:= ClientID;
ExecProc;
Result :=
paramByName('FULL_NAME').AsString;
end;
finally
unlock;
end;
end;
Теперь основной модуль готов, и можно перейти к
написанию следующего модуля данных, предназначенного для работы с документом.
Рисунок 3.
Здесь уже все немного сложнее. Разумеется, здесь тоже
есть соединение с базой ibdDoc, настроенное на сервер БД. Хранимая процедура
spNewID выдает на этот раз номер для нового документа, используя процедуру
DOC_TITLE_ID, аналогичную процедуре CLIENT_ID.
На этот раз в модуле данных, помимо компонентов
запросов к серверу, присутствуют два компонента TСlientDataSet и два провайдера
данных. Эти дополнительные компоненты предназначены именно для организации
расчетов на сервере. Поскольку, как мы договорились, на сервере приложений
должна рассчитываться сумма документа, то на нем должно быть известно
содержимое документа до того, как оно будет сохранено в БД. Разумеется, это
можно осуществить, используя события провайдера для предварительной обработки
пакета изменений, поступившего от клиентской части, но мне хотелось показать
возможность организации работы с документом как с полноценным объектом.
Идея простая: пусть весь удаленный модуль данных
работает с одним документом. В таком случае этот модуль будет выглядеть для
клиентской части как полноценный объект, владеющий всеми данными документа и
предоставляющий клиентской части все необходимые свойства. Разумеется, от
пакетов данных никто не отказывается.
Таким образом, организуется следующий алгоритм работы:
Клиентская часть создает на сервере либо новый документ, либо открывает
существующий (удаление документов уже реализовано). Сервер приложений создает
модуль данных и, если необходимо, закачивает в него содержимое документа с
сервера БД. После этого клиентская часть и удаленный модуль данных совместно
обрабатывают эти данные, занимаясь каждый своим делом: клиентская часть
предоставляет средства для изменения этих данных пользователем, а удаленный
модуль производит все необходимые расчеты.
Рекомендуем скачать другие рефераты по теме: зимнее сочинение, шпаргалки по уголовному.