На главную страницу
Форум txt.version   




Статья :: Интерфейс IAppServer

 

Интерфейс IAppServer

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

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

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

Свойство

property AppServer: Variant;

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

По умолчанию интерфейс является несохраняющим состояние (stateless). Это означает, что вызовы методов интерфейса независимы и не привязаны

к предыдущему вызову. Поэтому интерфейс IAppServer не имеет свойств, которые бы хранили информацию о состоянии между вызовами.

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

Методы интерфейса IAppServer представлены в табл. 21.1

Таблица 21.1. Методы интерфейса IAppServar

Объявление

Описание

function AS ApplyUpdates (const ProviderName: WideString; Delta: OleVariant; MaxErrors: Integer; out ErrorCount: Integer; var OwnerData: OleVariant) : OleVariant; safecall;

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

Изменения содержатся в параметре Delta.

Параметр MaxErrors задает максимальное число ошибок, пропускаемых при сохранении данных перед прерыванием операции. Реальное число возникших ошибок возвращается параметром ErrorCount.

Параметр OwnerData содержит дополнительную информацию, передаваемую между клиентом и сервером (например, значения параметров методов-обработчиков).

Функция возвращает пакет данных, содержащий все записи, которые не были сохранены в базе данных по какой-либо причине

function AS DataRequest (const ProviderName: WideString; Data: OleVariant) : OleVariant; safecall;

Генерирует событие OnDataRequest для указанного провайдера ProviderName

procedure AS Execute (const ProviderName: WideString; const CommandText : WideString; var Params : OleVariant; var OwnerData: OleVariant) ; safecall;

Выполняет запрос или хранимую процедуру, определяемые параметром CommandText для провайдера, указанного параметром ProviderName. Параметры запроса или хранимой процедуры содержатся в параметре Params

function AS GetParams (const ProviderName: WideString; var OwnerData: OleVariant): OleVariant; safecall;

Передает провайдеру ProviderName текущие значения параметров клиентского набора данных

function AS GetProviderNames: OleVariant; safecall;

Возвращает список всех доступных провайдеров удаленного модуля данных

function AS GetRecords (const ProviderName : WideString, Count: Integer; out RecsOut: Integer; Options: Integer; const CommandText: WideString; var Params : OleVariant; var OwnerData :OieVariant) : OleVariant; safecall;

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

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

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

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

function AS RowRequest (const ProviderName: WideString; Row: OleVariant; RequestType: Integer; var OwnerData: OleVariant): OleVariant; safecall;

Возвращает запись набора данных (предоставляемого провайдером ProviderName), определяемую параметром Row.

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

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

Внимательный читатель обратил внимание, что использование метода AS_GetRecords подразумевает сохранение информации при работе интерфейса, т. к. метод возвращает записи, начиная с текущей, хотя интерфейс IAppServer имеет тип stateless. Поэтому перед использованием метода рекомендуется обновлять набор данных клиента.

Тип

TFetchOption = (foRecord, foBlobs, foDetails);

 TFetchOptions = set of TFetchOption;

используется в параметре RequestType метода AS_RowRequest.

foRecord — возвращает значения полей текущей записи;

foBlobs — возвращает значения полей типа BLOB текущей записи;

foDetails — возвращает все подчиненные записи вложенных наборов данных для текущей записи.

 

Интерфейс IAppServer

страницы в данном разделе 
 ГЛАВА 21  ГЛАВА 21 Сервер приложения
 Структура сервера приложения  Интерфейс IAppServer
 Интерфейс IProviderSupport  Удаленные модули данных
 Удаленный модуль данных для сервера Автоматизации  Дочерние удаленные модули данных
 Регистрация сервера приложения  Пример простого сервера приложения
 Главный удаленный модуль данных  Дочерний удаленный модуль данных
 Регистрация сервера приложения  Резюме


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
React Native
demo forum