ВУЗ:
Составители:
22
Практические задания 
1. Доработайте  учебный пример   трехзвенной   системы   так , чтобы   она  по -
зволяла сохранять  в   базе данных результаты   редактирования  таблиц   на  стороне  
«тонких»  клиентов .  
2.  Доработайте  учебный  пример   трехзвенной   системы  так ,  чтобы  
оператор,  работающий   с  «тонким»   клиентом,  имел   возможность  управлять 
соединением   с  сервером  приложений .  При  этом  необходимо  дополнительно  
предусмотреть  интерфейсные команды на  передачу   результатов   редактирова-
ния  таблиц   серверу  приложений   для сохранения  их   в   базе данных.  
3.  Доработайте  учебный  пример   трехзвенной   системы  так ,  чтобы   опера-
тор   «тонкого»   клиента  имел   возможность  удобной   работы   в   автономном  режи-
ме (без   связи  с  сервером   приложений ). При  этом  необходимо  дополнительно 
предусмотреть  интерфейсные  команды управления  соединением   с  сервером 
приложений , команды сохранения  кэша редактируемых таблиц   в   файлах   на  ло-
кальных дисках , восстановления  содержимого   кэша из   файлов , а также коман -
ды на  передачу   результатов   редактирования  таблиц   серверу   приложений   для 
сохранения  их   в   базе  данных (при  переходе из   автономного  режима  в  режим  
связи с сервером  приложений ).  
4.  Доработайте  учебный  пример   трехзвенной   системы   для  реализации 
возможности  регистрации  клиентов   в   базе данных. С  этой   целью , прежде всего, 
необходимо для каждого   «тонкого»   клиента  обеспечить  на  сервере приложений  
собственное  соединение  с   базой   данных (см. выше: компоненты   TDatabase и 
TSession  помещаются  в   удаленный   модуль данных),  чтобы   иметь  возмож -
ность  индивидуальной   регистрации  на  сервере  СУБД.  Необходимо  также 
обеспечить  передачу   имени  пользователя  и  пароля,  вводимых  оператором 
«тонкого»   клиента, на  сервер   приложений . Наиболее  подходящим   для реализа-
ции  такой   передачи  является  механизм  вызова  специальных (разработанных 
вами)  методов  COM-интерфейса  удаленного   модуля  данных.  Например ,  вы 
можете  при  помощи редактора  библиотеки  типов   добавить  метод   Login,  по-
зволяющий   передачу   имени  пользователя и пароля через   параметры .  
5.  Доработайте  учебный   пример   трехзвенной   системы   так ,  чтобы   она 
обеспечивала корректную многопользовательскую работу   «тонких»   клиентов , 
использующих  briefcase model (см.  выше).  Изучите  событие  TClientData-
Set.OnReconcileError, возникающее  в   случае , когда при  попытке сохране-
ния  измененной   записи  в   базе данных выясняется, что   эта  запись  уже была из -
менена  другим   пользователем .  Вам   необходимо  написать  обработку   этого  
события  в   клиентском  приложении.  Стандартный   интерфейс  пользователя, 
предусматривающий   обычные  для  такой   ситуации  команды,  реализован   в  
диалоге Reconcile Error Dialog. Если он  вас   устраивает, его  можно   добавить  к  
клиентскому  проекту   из   репозитария  объектов . 
                                    22
     Практические задания
      1. Доработайте учебный пример трехзвенной системы так, чтобы она по-
зволяла сохранять в базе данных результаты редактирования таблиц на стороне
«тонких» клиентов.
      2. Доработайте учебный пример трехзвенной системы так, чтобы
оператор, работающий с «тонким» клиентом, имел возможность управлять
соединением с сервером приложений. При этом необходимо дополнительно
предусмотреть интерфейсные команды на передачу результатов редактирова-
ния таблиц серверу приложений для сохранения их в базе данных.
      3. Доработайте учебный пример трехзвенной системы так, чтобы опера-
тор «тонкого» клиента имел возможность удобной работы в автономном режи-
ме (без связи с сервером приложений). При этом необходимо дополнительно
предусмотреть интерфейсные команды управления соединением с сервером
приложений, команды сохранения кэша редактируемых таблиц в файлах на ло-
кальных дисках, восстановления содержимого кэша из файлов, а также коман-
ды на передачу результатов редактирования таблиц серверу приложений для
сохранения их в базе данных (при переходе из автономного режима в режим
связи с сервером приложений).
      4. Доработайте учебный пример трехзвенной системы для реализации
возможности регистрации клиентов в базе данных. С этой целью, прежде всего,
необходимо для каждого «тонкого» клиента обеспечить на сервере приложений
собственное соединение с базой данных (см. выше: компоненты TDatabase и
TSession помещаются в удаленный модуль данных), чтобы иметь возмож-
ность индивидуальной регистрации на сервере СУБД. Необходимо также
обеспечить передачу имени пользователя и пароля, вводимых оператором
«тонкого» клиента, на сервер приложений. Наиболее подходящим для реализа-
ции такой передачи является механизм вызова специальных (разработанных
вами) методов COM-интерфейса удаленного модуля данных. Например, вы
можете при помощи редактора библиотеки типов добавить метод Login, по-
зволяющий передачу имени пользователя и пароля через параметры.
      5. Доработайте учебный пример трехзвенной системы так, чтобы она
обеспечивала корректную многопользовательскую работу «тонких» клиентов,
использующих briefcase model (см. выше). Изучите событие TClientData-
Set.OnReconcileError , возникающее в случае, когда при попытке сохране-
ния измененной записи в базе данных выясняется, что эта запись уже была из-
менена другим пользователем. Вам необходимо написать обработку этого
события в клиентском приложении. Стандартный интерфейс пользователя,
предусматривающий обычные для такой ситуации команды, реализован в
диалоге Reconcile Error Dialog. Если он вас устраивает, его можно добавить к
клиентскому проекту из репозитария объектов.
