Delphi. Datasnap. Как создать клиентское приложение?

Тут, насколько я понимаю вариантов несколько — ведь если сервер приложений DataSnap уже создан, а также подключен к СУБД то нужно только подключиться к нему. В данном посте будем рассматривать самый простой случай создания клиента — VCL Delphi приложение, которое просто подключим к серверу в данном посте, а в последующих постах научим его вставлять, править и удалять данные. Итак, поехали…

Подготовительная работа. Что нужно настроить на сервере приложений DataSnap?

В предыдущем посте мы добавили в модуль методов сервера приложений DataSnap следующие компоненты…

3

Теперь нужно только их настроить… SqlDataset1 я настроил таким образом… (заполнил свойства CommandType и CommandText, а также SQLConnection и выставил в Active)

1

DataSetProvider я настроил таким образом… (DataSet выставил в SQLDataSet1, а также в Options добавил poAllowCommandText)

2

 

Собственно создание клиентского приложения DataSnap на Delphi

Создадим форму и разместим на ней следующие компоненты…

3

 

Здесь у нас на форме приложения VCL присутствуют

SQLConnection1 для связи с сервером приложений DataSnap

DSProviderConnection1 для связи с провайдером сервера

ClientDataSet1 для хранения множества

DataSource1 для транслирования множества

-DBGrid1 для отображения множества

Как настроить компоненты клиента Delphi DataSnap?

4

 

Здесь самое главное — выбрать драйвер DataSnap. Можно раскрыть свойства драйвера и там настроить более внимательно — хост, порты и так далее. Но если сервер создавали с помощью мастера и не меняли порты, а также работаете на localhost, то все встает автоматически.

Если попробовать поставить Connected в True, то если не запущен сервер — получим ошибку. Важный момент — Боб Сварт в своей книге по DataSnap советует у клиента свойства подключения к серверу выставлять при создании клиента (например в FormCreate). Потому что если свойство Connected у клиента установлено в True, то Delphi каждый раз при открытии проекта в IDE пытается подключить клиента к серверу приложений, а он может быть не всегда запущен. Тоже самое касается ClientDataSet. Вообще, если у ClientDataSet1 выставить в True свойство Active, то у SQLConnection подключенного по нашей схеме свойство Connected тоже встанет в True, и наоборот.


 

5

 

У DSProviderConnection меняем 2 свойства — SQLConnection — ставим SQLConnection1, и второе — ServerClassName (берем из модуля серверных методов название типа) — TServerMethods1


 

6

 

У ClientDataSet1 самое главное выставить

RemoteServer — DSProviderConnection1

ProviderName — DataSetProvider1 (появится из списка — этот компонент на стороне сервера, если их там несколько, то здесь появится также несколько. Важно! Если тип сервера выбран не TDSServerModule, то из выпадающего списка ничего не выпадет, а при попытке прописать туда что-то руками выпадет ошибка)

Также, свойство Active поставим в False;


 

7

 

У DataSource поставим свойство DataSet в ClientDataSet1


 

 

8

 

У DBGrid выставим свойство DataSource в DataSource1…


 

Как из клиента подключиться к серверу приложений DataSnap?

Итак, запустим сервер приложений DataSnap…

9

 

Далее, в FormCreate клиентского приложения пропишем следующий код…

 

Результат запуска клиента…

10