(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Учебный пример: Многозвенная архитектура DataSnap XE для баз данных

Источник: embarcadero
Vsevolod Leonov

В этой статье рассматривается создание простейшего многозвенного приложения для баз данных с использованием DataSnap XE. Этот пошаговый учебный пример очень прост, поэтому даже начинающие программисты Delphi смогут его воспроизвести. Целью этого учебного примера является знакомство с процессом создания клиентов и серверов DataSnap. Наш пример "многозвенное приложение для баз данных" подразумевает клиентское и серверное приложение. Обе программы - Delphi VCL Forms Win32, а для связи используется протокол TCP/IP. Надеемся, вам понравится!

Введение

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

Для данного примера подойдет любая база данных; однако здесь рассмотрен Embarcadero InterBase XE RDBMS в качестве сервера баз данных.

InterBase XE поставляется с демонстрационной базой данных "EMPLOYEE" которая и будет использоваться в дальнейшем.

Сначала нам необходимо сконфигурировать Delphi Data Explorer для связи с этой базой данных "EMPLOYEE".

Конфигурирование подключения к базе данных в Data Explorer

В панели Data Explorer кликните правой кнопкой мыши на узле "INTERBASE", выберите "Add New Connection" и задайте имя "IBEMPLOYEE".

Кликните правой кнопкой на созданном узле "IBEMPLOYEE" в панели Data Explorer и выберите "Modify Connection" для конфигурирования соединения с базой данных.

По-умолчанию InterBase XE устанавливается и размещает демонстрационную базу данных "EMPLOYEE" в папку "c:\Embarcadero\InterBase\examples\database\employee.gdb". По-умолчанию параметр username установлен в значение "sysdba", а пароль "masterkey".

Кликните на "Test Connection" для проверки правильности конфигурирования подключения к базе данных.

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


Создание сервера DataSnap Server для многозвенной системы

На данном первом шаге мы создадим новый сервер DataSnap с использованием мастера "DataSnap Server".

Выберите "File -> New -> Other", а в диалоге "New Items" кликните два раза на иконке "DataSnap Server" в категории "Delphi Projects -> DataSnap Server".

На первой странице оставьте опцию "Project type" как "VCL Forms Application".

На второй странице также оставим опции по-умолчанию.

На третьей страниц оставьте значение "211" для номера порта TCP/IP. Желательно всегда проверять доступность порта нажатием на кнопку "Test Port".

На последней странице выберите "TDSServerModule" в качестве базового для класса серверных методов.

Кликните на кнопке "Finish", а мастер сгенерирует новый проект, состоящий из трех модулей.

Кликните на "File -> Save All".

Создайте новую папку для всех файлов данного примера - например, "C:\DataSnapLabs\MultiTier\".

Сохраните главную форму приложения как "FormServerUnit" и согласитесь с именами по-умолчанию для всех остальных файлов - обычно, "ServerContainerUnit1" и "ServerMethodsUnit1" - и сохраните сам проект как "MultiTierServer".

Реализация подключения к базе данных в простом сервере DataSnap вообще не требует кодирования! Задача состоит лишь в добавлении нескольких компонентов к "ServerMethodsUnit1".

В ходе выполнения данного примера мы собираемся обеспечить к одной таблице CUSTOMER базы данных EMPLOYEE. Клиентское приложение будет обладать функциональностью, связанной с отображением и изменением данной таблицы.

Целью следующего шага является добавление компонентов "TSQLConnection", "TSQLDataSet" и "TDataSetProvider" в разрешенную для размещения область "ServerMethodsUnit1" и их связывание. Самый простой способ сделать это - воспользоваться возможностью взаимодействия Data Explorer и дизайнера VCL Forms. Просто выберите нужную таблицу в Data Explorer и перетащите ее на "ServerMethodsUnit1" для автоматического создания и конфигурирования этих двух компонентов.

Обратите внимание, что компоненты TSQLConnection и TSQLDataSet "переползли" на модуль серверных методов, но они также получили правильные имена и нужные свойства.

Последним шагом является размещение компонента "TDataSetProvider" (закладка Data Access в палитре компонентов) на модуле данных и установка его свойства "DataSet" в значение "CUSTOMER". Желательно всегда задавать имя провайдеру данных с каким-либо смыслом, например, "dspCustomer".

Мы полностью реализовали наш демонстрационный сервер. Это было легко, и нам не потребовалось вводить ни одной строчки кода!

Для того чтобы создать клиентское приложение, сервер должен быть запущен. Выберем Select "Run -> Run Without Debugging" (запуск без отладчика) для запуска сервера, а затем минимизируем его окно.

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

Создания клиента DataSnap Client для многозвенного решения для БД

Кликните правой кнопкой мыши на проектной группе (project group) и выберите "Add New Project".

В диалоге "New Items" выберите "VCL Forms Application" в категории "Delphi Projects".

Кликните "OK". К существующей проектной группе добавится новый проект.

Кликните на "File -> Save All".

Выберите папку, в которой был сохранен серверный проект, и сохраните туда модуль главной формы клиентского приложения как "FormClientUnit", новый проект как "MultiTierClient" и новую проектную группу как "MultiTierGrp".

Поместите компонент "TSQLConnection" на клиентской форме и задайте свойство "Driver" в значение "DataSnap". Снимите "галочку" на свойстве "LoginPrompt", теперь данное свойство имеет значение "False".

Поместите компонент "TDSProviderConnection" (раздел DataSnap Client палитры компонентов) на форму и установите его свойство "SQLConnection" из выпадающего списка так, чтобы оно указывало на компонент "SQLConnection1", который уже находится на форме.

Введите "TServerMethods1" в качестве значения свойства "DSProviderConnection1.ServerClassName".

Добавьте компонент "TClientDataSet" на форму.

Поставьте значение свойства "RemoteServer" в "DSProviderConnection1".

В выпадающем списке свойства "ProviderName" выберите "dspCUSTOMER".

Добавьте на форму компонент "TDataSource" и установите свойство "DataSet" в значение "ClientDataSet1".

Добавьте компонент "TDBGrid" на форму и установите его свойство "DataSource" в значение "DataSource1".

Добавьте компонент "TDBNavigator" на форму и установите его свойство "DataSource" в значение "DataSource1".

Добавьте компонент "TCheckBox" на форму. Измените его свойство "Caption" на "Active".

Кликните два раза на компоненте "CheckBox1" и введите следующий код для события "OnClick":

procedure TForm3.CheckBox1Click(Sender: TObject);
begin
  ClientDataSet1.Active := CheckBox1.Checked;
end;

Добавьте компонент "TButton" на форму. Кликните два раза на нем и введите следующий код для события "OnClick":

procedure TForm3.Button1Click(Sender: TObject);
begin
  ClientDataSet1.ApplyUpdates(-1);
end;

На данной стадии проекта клиентское приложение выглядит так:

Теперь настало время увидеть работающего клиента в действии!

Запустите приложение, кликните на компоненте check-box с надписью "Active". На экране должна отобразиться информация в таблице!

Сделайте некоторые изменения в данных, кликните на кнопке "Post" компонента DBNavigator для фиксации изменений в памяти компонента ClientDataSet1, а затем кликните на кнопке "Apply Updates" для отсылки изменений серверу.

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

Я реорганизовал визуальные компоненты, поэтому мою окончательно клиентское приложение выглядит следующим образом:

Так оно выглядит лучше!

Мы только что создали демонстрационное многозвенное решение для базы данных на основе технологии DataSnap при помощи мастеров, небольшого количества компонентов и пары строчек кода!

Это-то и называется "Быстрая разработка приложений" (Rapid Application Development) или сокращенно "RAD".

Итог

В этом учебном примере мы использовали Delphi XE и InterBase XE для построения простого многозвенного приложения, состоящего из Win32-сервера и Win32-клиента, которые взаимодействуют между собой на основе протокола TCP/IP.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.08.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
IBM RATIONAL Clearcase Floating User License + Sw Subscription & Support 12 Months
Купить CommView for WiFi 1 лицензия
Контур.Доступ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерный дизайн - Все графические редакторы
СУБД Oracle "с нуля"
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100