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

Рис. 22.2. Иерархия классов клиентских наборов данных

Для этого он имеет защищенное свойство property Provider: TDataSetProvider;

Соединение с источником данных осуществляется не СВОЙСТВОМ RemoteServer (будет рассмотрено ниже применительно к компоненту TClientDataSet), задающим удаленный сервер, а стандартными средствами соответствующей технологии доступа к данным.

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

Компонент TCiientDataSet

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

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

• представление набора данных в формате XML.

Предком компонента TCiientDataSet является класс TDataSet, поэтому TCiientDataSet обладает таким же набором функций, что и обычный компонент, инкапсулирующий набор данных. Основное же отличие заключается в том, источник данных для него доступен только через удаленный компонент-провайдер. Это означает, что сохранение изменений и обновление набора данных осуществляется локально, без обращения к источнику данных.

Например, выполнение метода Post приведет лишь к сохранению текущей записи набора данных в локальном кэше. Все изменения отсылаются на сервер только при необходимости и легко управляются разработчиком.

Как и обычный компонент, компонент TCiientDataSet может использоваться совместно с визуальными компонентами отображения данных. Для этого нужен компонент TDataSource.

Рассмотрим основные функции, реализуемые компонентом TCiientDataSet.

Получение данных от компонента -провайдера

Компонент TClientDataSet получает доступ к удаленным данным через компонент соединения DataSnap (см. гл. 20). В зависимости от используемой технологии ЭТО могут быть компоненты ТОСОМ&ппесйоп, TSocketConnection, TWebConnection ИЛИ TCorbaConnection.

Компонент TciientDataSet связывается с компонентом соединения при помощи свойства

property RemoteServer: TIlistcmRemoteServer;

Если соединение настроено правильно, то ссылка на интерфейс iAppServer в свойстве

property AppServer: IAppServer; совпадает со свойством ClientDataSet.RemoteServer.AppServer; После настройки соединения в свойстве

property ProviderName: string;

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

Если провайдер был подключен правильно, свойство только для чтения


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

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



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

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31