Соединение с сервером приложений обеспечивает динамическая библиотека MIDAS.DLL, которая должна быть зарегистрирована на компьютере клиента.
Как и обычное приложение БД, клиент многозвенного распределенного приложения должен содержать компоненты, инкапсулирующие набор данных, которые связаны с визуальными компонентами отображения данных ПОСреДСТВОМ КОМПОНеНТОВ TDataSource.
Очевидно, что набор данных сервера должен быть скопирован клиентским приложением в некий локальный буфер. При этом должен использоваться эффективный механизм загрузки данных сравнительно небольшими порциями, что позволяет значительно разгрузить транспортный канал между клиентом и сервером приложений.
Кэширование и редактирование данных в клиентском приложении обеспечивает специализированный компонент Тсиеп10а1а8е1, отдаленным предком которого является класс ТЕ)а1а8е1. Помимо унаследованных от предков методов, класс ТсиепШа1а8е1 инкапсулирует ряд дополнительных функций, облегчающих управление данными.
(_Примечание_)
Подобно обычному приложению БД, в "тонком" клиенте для размещения невизуальных компонентов доступа к данным необходимо использовать модули данных.
Для получения набора данных сервера компонент Тсиеп10а1а8е1 взаимодействует с компонентом ТОа1а8е1Ргстс1ег, используя методы интерфейса
1Ргоу1с1ег5ирроЛ (см. гл. 21) .
По существу все уникальные функции клиентского приложения сосредоточены в компоненте Тсиеп10а1а8е1, изучением которого мы и займемся далее в этой главе. В остальном клиентское приложение не отличается от обычного приложения БД и при его разработке могут применяться стандартные методы.
Клиентские наборы данных
В Палитре компонентов Delphi представлено несколько компонентов, инкапсулирующих клиентский набор данных. В то же время при разработке настоящих удаленных клиентских приложений применяется компонент
TCiientDataSet. Внесем ясность в этот вопрос. Итак, помимо компонента TCiientDataSet, расположенного на странице Data Access, существуют еще два компонента:
□
TSimpleDataSet - разработан для технологии доступа к данным dbExpress и, по существу, является единственным полноценным средством для работы с набором данных в рамках этой технологии;
□TiBClientDataSet - используется в технологии доступа к данным сервера InterBase - InterBase Express.
Все перечисленные компоненты произошли от общего предка - класса TCustomciientDataSet (рис. 22.2). Они обеспечивают локальное кэширование данных и взаимодействие с серверным набором данных при посредстве интерфейса IProviderSupport.
Основное различие между компонентом TCiientDataSet и другими клиентскими компонентами заключается в том, что первый предназначен для использования с внешним компонентом-провайдером данных. А значит, он может взаимодействовать с удаленным провайдером данных.
Остальные перечисленные компоненты инкапсулируют внутренний провайдер данных, предоставляя тем самым для использования в рамках соответствующих технологий доступа к данным эффективный механизм локального кэширования данных. Использование внутреннего провайдера данных обеспечивает общий класс-предок TCustomCachedDataSet.