Иллюстрированный самоучитель по Delphi 7 для профессионалов

Механизм удаленного доступа к данным DataSnap. Компонент TDCOMConnection.

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

Различные типы соединений, позволяющие настроить транспорт и начать передачу и прием данных, инкапсулированы в нескольких компонентах DataSnap. Для создания соединения с тем или иным транспортным протоколом разработчику достаточно перенести соответствующий компонент на форму и правильно настроить несколько свойств. Ниже рассматриваются варианты настройки транспортных протоколов для компонентов, использующих DCOM, сокеты TCP/IP, http.

Компонент TDCOMConnection

Компонент TDCOMConnection предоставляет транспорт на основе технологии Distributed COM и применяется в основном для организации транспорта в рамках локальной сети.

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

property ComputerName: string;

Если оно задано правильно, в списке свойства:

property ServerName: string;

…в Инспекторе объектов можно выбрать один из доступных серверов. При выборе сервера также автоматически заполняется свойство:

property ServerGUID: string;

Причем для успешного соединения клиента с сервером приложений оба свойства должны быть заданы в обязательном порядке. Только имя сервера или только его GUID не обеспечат правильный доступ к удаленному объекту СОМ.

Открытие и закрытие соединения осуществляется свойством:

property Connected: Boolean;

…или методами:

procedure Open/procedure Close;

…соответственно.

Для организации передачи данных между клиентом и сервером компонент TDCOMConnection предоставляет интерфейс IAppServer:

property AppServer: Variant;

…который также может быть получен методом:

function GetServer: lAppServer; override;

Свойство:

property ObjectBroker: TCustomObjectBroker;

…позволяет использовать экземпляр компонента TsimpleObjectBroker для получения списка доступных серверов по время выполнения (см. ниже).

Методы-обработчики компонента TDCOMConnection представлены в табл. 20.1.

Таблица 20.1. Методы-обработчики событий компонента TDCOMConnection.

Объявление Описание
property Af terConnect: TNotifyEvent; Вызывается после установления соединения
property AfterDisconnect: TNotifyEvent; Вызывается после разрыва соединения
property BeforeConnect: TNotifyEvent; Вызывается перед установлением соединения
property BeforeDisconnect: TNotifyEvent; Вызывается перед разрывом соединения
type TGetUsernameEvent = procedure (Sender: TOb j ect; var Username: string) of object;
property OnGetUsername: TGetUsernameEvent;
Вызывается непосредственно перед появлением диалога удаленной авторизации пользователя. Для этого свойство LoginPrompt должно иметь значение True. Параметр Username может содержать имя пользователя по умолчанию, которое появится в диалоге
type TLoginEvent = procedure (Sender: TOb j ect; Username, Password: string) of object;
property OnLogin: TLoginEvent;
Вызывается после открытия соединения, если свойство LoginPrompt имеет значение True. Параметры Username и Password содержат имя пользователя и пароль, введенные при авторизации
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.