5. Разместить в удаленном модуле данных необходимое число компонентов TDataSetProvider и связать их с компонентами, инкапсулирующими наборы данных.

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

7. Скомпилировать проект и создать исполняемый файл сервера приложения.

8. Зарегистрировать сервер приложения и при необходимости настроить дополнительное ПО.

Весь механизм удаленного доступа, инкапсулированный в удаленных модулях данных и компонентах-провайдерах, работает автоматически, без создания разработчиком дополнительного программного кода.

Далее в этой главе на простом примере рассматриваются все перечисленные этапы создания сервера приложения.

интерфейс IAppServer

Интерфейс IAppServer является основной механизма удаленного доступа клиентских приложений к серверу приложения. Набор данных клиента использует его для общения с компонентом-провайдером на сервере приложения. Наборы данных клиента получают экземпляр IAppServer от компонента соединения в клиентском приложении (см. рис. 20.2).

При создании удаленных модулей данных (см. ниже) каждому такому модулю ставится в соответствие вновь создаваемый интерфейс, предком которого является интерфейс IAppServer.

Разработчик может добавить к новому интерфейсу собственные методы, которые, благодаря возможностям механизма удаленного доступа многозвенных приложений, становятся доступны приложению-клиенту.

Свойство

property AppServer: Variant;

в клиентском приложении имеется как в компонентах удаленного соединения, так и клиентском наборе данных.

По умолчанию интерфейс является несохраняющим состояние (stateless). Это означает, что вызовы методов интерфейса независимы и не привязаны к предьщущему вызову. Поэтому интерфейс ТАррЗе^ег не имеет свойств, которые бы хранили информацию о состоянии между вызовами.

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

Методы интерфейса 1Арр8егуег представлены в табл. 21.1

Таблица 21.1. Методы интерфейса /Аррвеп/ег

Таблица 21.1 (окончание)

Объявление

Описание

function AS GetRecords(const

Возвращает пакет данных с записями набора

ProviderName: WideString,

данных сервера, связанного с компонентом-

Count: Integer; out

провайдером.

RecsOut: Integer;
Options: Integer;
const CommandText: WideString;
var Params: 01eVar i ant;
var OwnerData:OleVariant): OleVariant;
safecall;

Параметр ComnandText содержит имя таблицы, текст запроса или имя хранимой процедуры, откуда необходимо получить записи. Но он работает только в случае, если для провайдера в параметре Options включена опция poAllowCommandText. Параметры запроса или процедуры помещаются в параметре Pararrs.

Параметр задает требуемое число записей, начиная с текущей, если его значение больше нуля. Если параметр равен нулю - возвращаются только метаданные, если он равен -1 - возвращаются все записи.

Параметр RecsOut возвращает реальное число переданных записей

function AS RowRequest(const

Возвращает запись набора данных (предостав-

ProviderName: WideString;

ляемого провайдером ProviderName), опре-

Row: OleVariant;

деляемую параметром Row.

ReguestType: Integer;
var OwnerData: OleVariant) : OleVariant;
safecall;

Параметр RequestType содержит значение типа TfetchOptions

БОЛЬШИНСТВО МеТОДОВ интерфейса ИСПОЛЬЗУЮТ параметры ProviderName И OwnerData Первый определяет имя компонента-провайдера, а второй содержит набор параметров, передаваемых для использования в методах-обработчиках.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс