Тут, насколько я понимаю вариантов несколько – ведь если сервер приложений DataSnap уже создан, а также подключен к СУБД то нужно только подключиться к нему. В данном посте будем рассматривать самый простой случай создания клиента – VCL Delphi приложение, которое просто подключим к серверу в данном посте, а в последующих постах научим его вставлять, править и удалять данные. Итак, поехали…
Подготовительная работа. Что нужно настроить на сервере приложений DataSnap?
В предыдущем посте мы добавили в модуль методов сервера приложений DataSnap следующие компоненты…
Теперь нужно только их настроить… SqlDataset1 я настроил таким образом… (заполнил свойства CommandType и CommandText, а также SQLConnection и выставил в Active)
DataSetProvider я настроил таким образом… (DataSet выставил в SQLDataSet1, а также в Options добавил poAllowCommandText)
Собственно создание клиентского приложения DataSnap на Delphi
Создадим форму и разместим на ней следующие компоненты…
Здесь у нас на форме приложения VCL присутствуют
–SQLConnection1 для связи с сервером приложений DataSnap
–DSProviderConnection1 для связи с провайдером сервера
–ClientDataSet1 для хранения множества
–DataSource1 для транслирования множества
-DBGrid1 для отображения множества
Как настроить компоненты клиента Delphi DataSnap?
Здесь самое главное – выбрать драйвер DataSnap. Можно раскрыть свойства драйвера и там настроить более внимательно – хост, порты и так далее. Но если сервер создавали с помощью мастера и не меняли порты, а также работаете на localhost, то все встает автоматически.
Если попробовать поставить Connected в True, то если не запущен сервер – получим ошибку. Важный момент – Боб Сварт в своей книге по DataSnap советует у клиента свойства подключения к серверу выставлять при создании клиента (например в FormCreate). Потому что если свойство Connected у клиента установлено в True, то Delphi каждый раз при открытии проекта в IDE пытается подключить клиента к серверу приложений, а он может быть не всегда запущен. Тоже самое касается ClientDataSet. Вообще, если у ClientDataSet1 выставить в True свойство Active, то у SQLConnection подключенного по нашей схеме свойство Connected тоже встанет в True, и наоборот.
У DSProviderConnection меняем 2 свойства – SQLConnection – ставим SQLConnection1, и второе – ServerClassName (берем из модуля серверных методов название типа) – TServerMethods1
У ClientDataSet1 самое главное выставить
RemoteServer – DSProviderConnection1
ProviderName – DataSetProvider1 (появится из списка – этот компонент на стороне сервера, если их там несколько, то здесь появится также несколько. Важно! Если тип сервера выбран не TDSServerModule, то из выпадающего списка ничего не выпадет, а при попытке прописать туда что-то руками выпадет ошибка)
Также, свойство Active поставим в False;
У DataSource поставим свойство DataSet в ClientDataSet1
У DBGrid выставим свойство DataSource в DataSource1…
Как из клиента подключиться к серверу приложений DataSnap?
Итак, запустим сервер приложений DataSnap…
Далее, в FormCreate клиентского приложения пропишем следующий код…
1 2 3 4 5 |
procedure TForm1.FormCreate(Sender: TObject); begin SQLConnection1.Connected:=true; ClientDataSet1.Active:=true; end; |
Результат запуска клиента…