Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

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

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

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

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

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

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

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

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

Сохраним проект в папке с именем удаленного модуля данных 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‑InternetProtocol). Например,IP‑адрес ло­каль­ного компьютера кли­ен­та имеет адрес 127.0.0.1 и имяLocalhost. Для передачи информации в Интерненте используется протоколTCP/IP(TCP‑TransportControlProtocol, протокол транспортного управления). Работа с про­то­ко­лом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.