Главная » Delphi » Delphi 2006 – Технология создания многоуровневых BDP-приложений баз данных

0

Технология создания многоуровневой системы в Delphi выглядит так. Во- первых, надо создать сервер приложений, промежуточное звено между СУБД и клиентскими программами, для чего задействуются компоненты BdpConnection и BdpAdapter и настраивается связь с СУБД, как уже описывалось. Далее, к проекту добавляется компонент DataSync, обеспечивающий взаимодействие набора данных (.NET-класса DataSet) с множественными гетерогенными источниками данных. Через посредство этого компонента к серверу сможет обращаться множество клиентских приложений, и каждому из них компонент DataSync обеспечит доступ к нужной таблице некоторой СУБД. Наконец, надо использовать компонент RemoteServer (Удаленный сервер), который был специально введен в Delphi для организации взаимодействия клиентских программ с компонентом DataSync по одному из стандартных сетевых протоколов.

Пример: создание сервера приложений

1.       При создании серверной программы сначала создается заготовка пустого модуля Windows Forms. Далее происходит связывание ее с одной из доступных СУБД. Это делается стандартным способом, с помощью BDP- провайдеров. Затем готовится набор данных — компонент DataSet.

2.       Следующий важный шаг — добавление компонента DataSync из группы Borland Data Provider палитры инструментов. Для его настройки надо вызвать визуальный редактор коллекции поставщиков данных, который данный компонент должен обслуживать. Редактор этот вызывается обращением к свойству Providers компонента и нажатием на кнопку Add в появившемся окне. В результате к доступному в текущем приложении списку провайдеров добавляется новый элемент (список Members) — рис. 5.16.

В правой части редактора выведены свойства текущего поставщика. Так, в свойстве DataAdapter указывается доступный в проекте Bdp-адаптер (например, BdpAdapterl). Остальные свойства можно не настраивать, так как они были сгенерированы автоматически при добавлении к проекту связи с СУБД.

Рис. 5.16. Редактор коллекции поставщиков данных

3. Далее добавим компонент RemoteServer и настроим его так: в свойстве DataSync укажем текущий объект синхронизации данных (например, DataSyncI), в свойстве ChannelType выберем вид протокола связи с сервером (Тер или Http), при необходимости изменим номер порта с 8000 на другой (свойство Port). Также сделаем наш сервер активным сразу после его запуска, для чего установим значение True свойству AutoStart.

Обратите внимание на значение свойства URI компонента RemoteServer. Именно ^^ под таким сетевым именем (по умолчанию RemoteServer 1) он будет виден в клиентских программах. Чтобы не возникали проблемы с одинаковыми названиями, значение свойства URI лучше изменить.

4. Скомпилируем исполнимое приложение и запустим его, только не из среды Delphi, а автономно (например, из Проводника). Это необходимо для отладки клиентской программы. Ведь для ее работы требуется уже настроенный сервер, прослушивающий обращения по заданному порту.

Пример: создание клиентского приложения

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

1.       Создадим новое пустое приложение Windows Forms. К нему прежде всего надо добавить компонент, поддерживающий набор данных (DataSet из группы Data Components), и компонент, визуализирующий этот набор (DataGrid из группы Data Controls), связав их через свойство DataSource.

2.       За связь клиентского приложения с сервером будет ответственен компонент RemoteConnection (Удаленное соединение) из группы Borland Data Provider. Укажем корректный тип протокола связи (значение свойства ChannelType должно совпадать со значением этого свойства компонента RemoteServer сервера), а также адрес хоста, на котором сервер развернут (свойство Host), номер порта (свойство Port) и, самое главное, адрес сервера в сети — URL (в зависимости от выбранного протокола схема его записи может меняться).

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

3.       Если все эти характеристики настроены правильно, а серверная программа запущена и доступна по указанному адресу, то в свойстве ProviderType компонента RemoteConnection появится список доступных серверов, поддерживающих технологию DataSync. Выберем тот, который соответствует нашему серверному приложению (рис. 5.17).

Таким образом, связь клиентской программы с сервером будет успешно

установлена, причем еще на этапе проектирования. Не составляет большо

Рис. 5.17. Настраиваем связь приложения с сервером

го труда на ее основе сформировать полноценный пользовательский интерфейс. Для этого достаточно добавить в проект компонент DataHub — прослойку между компонентом RemoteConnection, обеспечивающим связь с сервером, и набором данных DataSet локального приложения. Он играет примерно ту же роль, что и компонент DataSync в сервере. Настраивается этот компонент просто. Со стороны сервера он поддерживает работу через свойство DataPort — в раскрывающемся списке будет показан набор доступных объектов, предоставляющих текущие URL-соединения. В нашем случае укажем компонент RemoteConnection.

На уровне текущего приложения компонент DataHub связывается с локальным набором данных через свойство DataSet. Если теперь запустить клиентскую программу, то она первоначально предложит в своей форме выбрать нужную для обработки таблицу. Список этих таблиц был сформирован в серверном приложении через компонент DataSync (его свойство Providers — список дистанционно доступных провайдеров данных с привязанными к ним таблицами). При щелчке на названии нужной таблицы она откроется в локальном приложении.

Конкретизировать внешний вид клиентской формы можно, переведя в Дизайнере состояние компонента DataHub в активное состояние (изменив его свойство Active на True) и в свойстве DataMember визуальной таблицы DataGrid указав конкретную таблицу базы данных (рис. 5.18).

Рг/с. 5.18. Просмотр удаленной базы данных на этапе проектирования

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии