Шнырев Базы данных 2011
.pdfправильно, то окно дерева объектов должно иметь такой вид, как на рис. п.32.
Далее в окно Server поместим ком-
понент DataSetProvider с вкладки DataAccess. В его свойстве DataSet со-
шлемся на таблицу Table1. Нужно сохранить созданный проект под именем MyServer в новой папке с таким же названием. На последнем шаге запустим проект на исполнение на 1-2 секунды для того, чтобы вновь созданный сервер был зарегистрирован в системном рее-
стре Windows.
Рис. п.32. Окно дерева объектов
Создание клиента
Для создания клиента необходимо создать новый проект в Delphi и поместить на главную форму компоненты SocketConnection с вкладки DataSnap, ClientDataSet с вкладки DataAccess, а также компоненты DataSource, DBGrid и Button.
Компонент SocketConnection предназначен для осуществления связи между клиентом и сервером приложений со стороны клиента и использует для этого специальные функции Windows, которые называются сокетами. Для работы с сокетами Delphi имеет утилиту scktsrvr.exe, которая находится в папке Bin каталога Delphi. Нужно запустить эту утилиту на исполнение, после чего в правом углу панели инструментов рабочего стола появится значок
Borland Socket Server.
Компонент SocketConnection имеет свойство host, в котором указывается имя компьютера, на котором размещен сервер приложений. Поскольку в данном случае как клиент, так и сервер приложений располагаются на одном и том же компьютере, в это свойство следует установить значение localhost.
В свойстве ServerName следует сослаться на созданный сервер MyServer.Server, а в свойстве Connected установить значение true. В этот момент на экране появится новое окно с названием
221
Form1 – это автоматически запустился созданный сервер приложений. Его можно свернуть, но не завершить работу – иначе клиент не сможет установить связь с сервером приложений.
Теперь нужно связать компонент ClientDataSet с компонентом
SocketConnection, сославшись на него в свойстве RemoteServer, а
в качестве имени провайдера в поле ProviderName выбрать DataSetProvider1 – это тот самый компонент, который был добавлен в последнюю очередь в проект сервера приложений.
Далее свяжем сетку DBGrid с компонентом
DataSource, а компонент DataSource – с компонентом ClientDataSet. После этого в окне DBGrid должно отобразиться содержимое полей таблицы Otdel (рис. п.33). Если этого не произошло, то прежде всего необходимо проверить
значение свойства Active компонента ClientDataSet.
Клиентский проект можно сохранить в новую папку MyClient под тем же названием.
Теперь перейдем к программированию кнопки Button1. Она создана для того, чтобы клиент мог вносить изменения в таблицу Otdel и таким образом менять содержимое БД. Для этого следует обработчик события OnClick запрограммировать следующим образом:
procedure TForm1.Button1Click(Sender: TObject); begin
with ClientDataSet1 do ApplyUpdates(0); end;
Если теперь запустить проект на исполнение и, изменив содержание какой-либо записи, нажать на эту кнопку, то вызов метода ApplyUpdates приведет к тому, что сделанное изменение перепишется в БД. Если добавить в проект компонент DBNavigator, то с его помощью можно будет также удалять и добавлять записи в БД.
222
Сергей Львович Шнырев
БАЗЫ ДАННЫХ
Учебное пособие
Редактор Т.В. Волвенкова
Подписано в печать 15.12.2010. Формат 60 84 1/16. Печ. л. 14. Уч.-изд. л. 14. Тираж 100 экз.
Изд. № 1/4/9. Заказ № 21
Национальный исследовательский ядерный университет «МИФИ» 115409, Москва, Каширское ш., д. 31
ООО «Полиграфический комплекс «Курчатовский». 144000, Московская область, г. Электросталь, ул. Красная, д. 42