КЛИЕНТСКАЯ ЧАСТЬ

Приложение клиента (третье звено) несколько отличается от ранее рассмотренного (раздел III) приложения клиента в двухзвенной архитектуре «клиент—сервер». Основное отличие состоит в том, что компоненты доступа к данным перенесены на сервер приложений (второе звено). Вместо них установлены компоненты обращения к серверу приложений. Для согласования работы приложения клиента и сервера приложения используются специальные протоколы и, как следствие, соответствующие компоненты.

В технологии DCOM для доступа к серверу приложений используется компонент ТSocket Connection. Если приложение клиента обращается к нескольким базам данных, размещенных на разных серверах, то допускается использование нескольких компонентов ТSocket Connection. Для получения набора данных от сервера приложений используется компонент ТClient DataSet. Количество компонентов TClientDataSet соответствует количеству таблиц в базе данных и хранит соответствующий набор данных. Набор данных через передаточный компонент TDataSource передается в один из визуальных компонентов, например DBGrid. Для получения набора данных от сервера приложений у компонента TClientDataSet необходимо заполнить три свойства — RemoteServer, Provide г Name и Active.

Для нормальной работы компонента связи ТSocket Connection необходимо заполнить как минимум два свойства — Host и ServerName.

Другие компоненты размещаются на листе DataModule по усмотрению программиста. На рис. 15.1 представлен один из вариантов доступа к серверу приложений из приложения клиента.

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

ТSocket Connection — для установления связи с помощью сокетов;

Р dm2

ГЙ0

Q. . I

SocketConnectionl

РУ

AIIReport RvProjectl

ysry.

R' g

py I

RvSysteml

mm

Onerecord RvProject2

CDS Mobiles

*

DSMobiles

Рис. 15.1. Лист DataModule приложения клиента

TDCOM Connection — для установления связи по технологии COM/DCOM;

TCORBAConnection — для установления связи по технологии CORBA-

TWEBConnection

HTTP.

для установления связи по протоколу

Компонент TClient Data Set

Компонент размещен на вкладке DataAccess. Выполняет две основные функции:

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

Основные свойства:

property RemoteServer: ТCustom Remote Server; — содержит ссылку на компонент связи с сервером приложений (в примере рис. 15.1 компонент 7Socket Connection)', property ProviderName: string; — содержит ссылку на согласующий компонент, который размещен на сервере приложений (как правило, TDataSetProvider)', property Active: Boolean; — если свойство содержит значение True, то в компонент TClientDataSet загружается набор данных;

property Data: Ole Variant; — содержит упакованные в пакет данные для передачи по сети. Свойство Readonly, property DataSize: Integer; — размер пакета в байтах. Свойство Readonly,

property ChangeCount: Integer; — содержит сведения о количестве выполненных изменений в данных. Свойство Readonly,

property CommandText: string; — содержит запрос, который будет выполнен методом Execute; property FileName: string; — ссылка на имя файла, в котором хранятся данные;

property IndexDefs: TIndexDefs; — содержит массивы индексов, принадлежащих текущему набору данных. Свойство Readonly,

property IndexFieldCount: Integer; — содержит список имен полей, принадлежащих текущему индексу. Свойство Readonly,

property IndexName: string; — содержит имя текущего индекса. Свойство Readonly,

property Packet Records: Integer; — количество записей в пакете, полученном пользователем. Свойство Readonly, property HasAppServer: Boolean; — если свойство содержит значение True, то связь с сервером установлена, если — False, то связь разорвана;

property Readonly: Boolean; — если свойство содержит значение True, то набор данных доступен только для чтения записей, если — False, то разрешается вносить изменения в записи набора данных;

property RecNo: Integer; — содержит порядковый номер текущей записи в наборе данных. Свойство Readonly, property RecordCount: Integer; — количество записей в наборе данных. Свойство Readonly,

property RecordSize: Integer; — длина записи в наборе данных.

Свойство Readonly.

Основные методы:

function ApplyUpgates(MaxError: Integer); Integer, — выполняет обновление записей в наборе данных. В качестве параметра функции передается максимально возможное количество ошибок. Функция возвращает фактическое количество ошибок;

procedure Cancel; — выполняет откат неподтвержденных изменений в текущей записи;

procedure Cancel Updates', — выполняет откат неподтвержденных изменений записей в пакете; function Create BlobStream(Field: TField; Mode: TBlob Stream Mode): TStream; — создает поток для передачи значений Blob-полей. Параметр Field определяет имя Blob-тюля. Параметр Mode определяет режим работы потока и может содержать одну из констант: bmRead — чтение значения В/оЬ-поля', bmWrite — запись Blob-поля; bmReadWrite — редактирование Blob-поля; procedure Create DataSet', — создает пустой набор данных; procedure Empty DataSet', — очищает буфер от набора данных; procedure Execute', — выполняет 501-запрос, указанный в свойстве CommandText',

function GetNextPacket: Integer, — запрашивает у сервера следующий пакет данных. Размер пакета определяется свойством Packet Records. Функция возвращает количество записей, помещенных в пакет;

procedure GotoCurrent( DataSet: ТClient DataSet); — синхронизирует курсор текущего набора данных с курсором набора DataSet',

procedure Load From File( const FileName: string); — загружает набор данных из указанного файла; function Locate(cons Key Fields: string; const Key Values: Variant; Options: TOptions)'. Boolean; — организует поиск записи в наборе данных. Работа метода Locate аналогична работе одноименного метода, рассмотренного в книге 1; function Lookupicons Key Fields: string; const Key Values: Variant; const ResultFields: string): Variant; — организует поиск записи в наборе данных. Работа метода Lookup аналогична работе одноименного метода, рассмотренного в книге 1;

procedure Post, — фиксирует изменения в текущей записи набора данных;

procedure RefreachRecord', — обновляет текущую запись, заново считывая ее у провайдера;

procedure Revert Record', — восстанавливает текущую запись по протоколу ее изменений;

procedure SaveToFile(const FileName: string); — сохраняет набор данных в указанном файле;

procedure SaveToStream(Stream: TStream); — сохраняет данные в потоке.

Компонент TSocketConnection Cjs,

Компонент размещен на вкладке DataSnap и предназначен для обеспечения связи между приложением клиента и сервером приложений по протоколу TCP/IP с использованием функций низкого уровня API (сокетов). Такой тип связи обеспечивает максимальное быстродействие.

Основные свойства и методы компонента:

property Host: string', — содержит ссылку на сетевое имя персонального компьютера, на котором размещен сервер приложений. Заполнение этого свойства приводит к автоматической очистке свойства Address',

property ServerName: string; — содержит ссылку на модуль реализации сервера приложений;

property Address', string; — содержит IP-адрес персонального компьютера, на котором размещен сервер приложений. Заполнение этого свойства приводит к автоматической очистке свойства Host;

property Port: Integer, — определяет порт для связи с удаленным сервером приложений (размещенным на другом персональном компьютере);

procedure DoConnect; override; — устанавливает сокетное соединение с сервером приложений, установленным на другом персональном компьютере;

procedure CreateTransporf. ITransport; virtual; — организует доступ к транспортному интерфейсу ITransport.

Компонент TDCOMConnection

Компонент размещен на вкладке DataSnap. Предназначен для обеспечения связи между приложением клиента и сервером приложений по протоколу DCOM и обеспечивает автоматическую регистрацию на сервере клиентских наборов данных. Об-

ращение к серверу выполняется с использованием компонента ТDataSet Pro vider.

Основные свойства:

property ComputerName: string] — содержит ссылку на сетевое имя персонального компьютера, на котором размешен сервер приложений. Если это свойство пусто, то сервер приложений размещен на персональном компьютере клиента и зарегистрирован в реестре WIND О WS- клиента.

Компонент TCORBAConnection

Компонент размещен на вкладке DataSnap и предназначен для обеспечения связи между приложением клиента и сервером приложений в рамках технологии CORBA.

Основные свойства и методы компонента TCORBAConnection: property HostName: string] — содержит ссылку на сетевое имя или IP-адрес персонального компьютера, на котором размешен сервер приложений. Если это свойство пусто, то связь будет установлена с сервером, интерфейс которого указан первым в хранилище интерфейсов; property AppServer. Variant] — обеспечивает прямой доступ клиентским наборам данных к методам динамически вызываемого интерфейса DII (Dinamic Invocation Interface); property ServerName] string] — содержит ссылку на модуль реализации сервера приложений;

property ObjectName] string] — содержит ссылку на имя объекта, интерфейс которого ссылается на свойство Repository ID] property Repositoryld] TRepositorydD] — содержит идентификатор интерфейса CORBA — фабрики сервера приложений. Если на персональном компьютере установлено несколько серверов приложений, то для получения списка этих серверов предназначен компонент TSimple Object Broker, который размещен на вкладке DataSnap.

Компонент TSimple ObjectBroker

Компонент размещен на вкладке DataSnap.

Основные свойства и методы компонента: property Load Balanced] Boolean] — если свойство содержит значение True, то в свойство загружается список имен зарегистрированных серверов;

property Servers'. TServerCollection; — содержит список имен зарегистрированных серверов.

Контрольные вопросы

  • 1. Чем отличается приложение клиента в трехзвенном и двухзвенном вариантах архитектуры «клиент—сервер»?
  • 2. Какие типы листов (форм) используются при создании трехзвенного варианта приложения клиента?
  • 3. Расскажите о назначении и основных свойствах компонента ТС Не Ы-DaiaSet.
  • 4. Расскажите о назначении и основных свойствах компонента ТБоске^ СоппесНоп.
  • 5. Каковы назначение и основные свойства компонента ГОСОМ-

СоппесНоп?

6. Каковы назначение и основные свойства компонента ГСО/?6Л-

СоппесНоп?

7. Расскажите о назначении и основных свойствах компонента Г5/тр/е-ОЬ]еЫВгокег.

а

DSCamera

*

DSFirm

Е-

і4*

DSDisplay

Е-і4-

DS Memory

DSContries

STransferDevices

)SSoundFormat$

о о о

? ? ?

DSAII

CDS Camera

CDSFirm

CDSDisplay

CDS Memory

CDSContries

CDSTransferDevices

CDSSoundFormats

ClienlD ataS etAII

 
< Пред   СОДЕРЖАНИЕ     След >