Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

4.10.2. Создание сервера приложений доступа к базе данных

Рассмотрим порядок создания на примере.

  1. Командой File/New Application создадим новый проект Poject1.

  2. Добавим командой File/New/Multitier/Remote Data Module про­ект с удален­ным модулем данных, который будет обеспечивать связь с клиент­скими прог­раммами. В поле CoClass Name введем имя интерфейса этого модуля (например, IStroiki) и нажмем кнопку OK. Появится окно модуля.

  3. Н а странице Components этого окна разместим компонент Table со свойствами: DatabaseName=Stroiki (псевдоним базы строек), TableName=Zakazhiki (таблица с заказчиками).

  4. Р азместим компонент DataSetProvider (выполняет работу сер­вера приложений) со свойствами: DataSet=Table1. Для компо­­­нен­та Table1 установим свойство Active=True. Сервер будет постоянно на­хо­диться в опе­ра­тивной памяти, обслуживая клиентские приложения в от­ли­чие от сер­вера транзакции MTS (он для каждого клиентского при­ло­же­ния запус­кает но­вый процесс, создавая новую копию объекта COM).

  5. Зарегистрируем сервер на компьютере, где он будет выполняться: командой Run/Parameters установим в поле Parameters значение /Register.

(отмена регистрации задается командой /Unregister) и выполним при­ложение Project1 (имя сервера приложений).

  1. Сохраним проект в папке с именем удаленного модуля данных DataModulStroikiUdal (вместо Unit2) и закроем проект.

4.10.3. Связь с сервером приложений по протоколу dcom

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

  1. Командой File/New Application создадим новый проект.

  2. Р азместим на форме компонент DCOMConnection (связь клиентской программы с сервером приложений на основе техноло­гии DCOM) с панели Midas со свойствами: ServerName= Project1.Istroiki. Если указать свойство Connected=True, то сервер приложений (программа Project1.exe) автоматически запустится. И сервер закроется, если указать Connected=False. Мы оставим Connected=False.

  3. Р азместим компонент ClientDataSet со свойствами: RemoteServer=DCOMConnection1, ProviderName=DataSetProvider1 (для ав­то­­ма­тического запуска сервера приложений).

  4. Р азместим компонент DataSource со свойством DataSet= ClientDataSet1.

  5. Р азместим компонент DBGrid со свойством DataSource= DataSource1. Для компонента ClientDataSet1 установим свойство Active=True. Запустим клиентское приложение, и появится таблица.

4.10.4. Связь с сервером приложений по протоколу Интернет tcp/ip

Каждый компьютер в сети имеет IP‑адрес в виде четырех чисел (от 0 до 255), разделенных точками (IP ‑ Internet Protocol). Например, IP‑адрес ло­каль­ного компьютера кли­ен­та имеет адрес 127.0.0.1 и имя Localhost. Для передачи информации в Интерненте используется протокол TCP/IP (TCP ‑ Transport Control Protocol, протокол транспортного управления). Работа с про­то­ко­лом TCP/IP основана на технологии сокетов (Sockets). Сокет представляет собой окончание сете­во­го соединения с другим компьютером в приклад­ной программе, с которым устанавливается соединение перед и закры­вает­ся после передачи данных (аналогично файлу).

Изменим в клиентском приложении (п. 4.10.2) установку связи с сервером по протоколу DCOM на прото­кол TCP/IP.

  1. О ткроем проект клиентского приложения и разместим на форме компонент SocketConnection установки связи с сервером по протоколу PCP/IP. В свойстве Address указывается IP‑адрес удаленного компьютера сер­вера приложений. Для отладки укажем адрес локального компьютера 127.0.0.1. В свойстве ServerGUID указывается идентификационный номер GUID сервера приложений (п. 4.10.1). Ско­пи­руем его одноименные свойства ком­понента DCOMConnection1 через бу­фер, предварительно указав для него свойство Connected=False. После это­го свойству ServerName присвоится имя сервера Project1.IStroiki.

  2. Д ля организации связи запустим специальную программу Delphi5\Bin\ScktSrvr.exe. На панели индикации Windows появится ее отображение в виде значка. После двойного щелчка по этому знач­ку появится окно Borland Socket Server. Если флажок меню Connections/Register Objects Only установлен, то нужно его сбросить и пе­ре­за­пустить эту программу. В поле GUID введем (вста­вим из буфера) зна­че­ние свойства ServerGUID. Нажмем кнопку Apply.

  3. Для компонента SocketConnection1 для запуска сервера прило­же­ний установим свойство Connected=True.

  4. Для компонента ClientDataSet1 установим свойства RemoteServer=SocketConnection1 и Active=True.

  5. Выполним клиентское приложение, и появится таблица.

Копии этого приложения мо­гут запускаться на разных компьютерах, соединенных по протоколу TCP/IP при условиях, что в программах указа­ны верные IP‑адреса и на сер­ве­ре была запущена программа ScktSrvr.exe.