Главная » Delphi » Разработка приложений dbExpress, позволяющих редактировать данные

0

До сих пор  средства dbExpress рассматривались в контексте однонаправленных на боров  данных, открытых только  для чтения. Единственным исключением был пример использования компонента TSQLDataset для  выполнения хранимой процедуры, до бавляющей записи в таблицу.  Еще  одним  способом редактирования данных  является использование двунаправленных наборов данных  для кэширования обновлений. Для реализации такого подхода применяется компонент TSQLClientDataset.

Компонент TSQLClientDataset

В компоненте TSQLClientDataset реализованы свойства компонентов TSQLDa- taset и TProvider. Внутренняя реализация класса  TSQLDataset позволяет компо нентам  TSQLClientDataset осуществлять быстрый доступ к данным  через средства dbExpress.  Внутренняя  реализация  класса   TSQLProvider позволяет  осуществлять двунаправленную навигацию и редактирование данных.

Применение  компонента  TSQLClientDataset очень   похоже  на   применение стандартного компонента TClientDataset. Этот вопрос рассматривается в главе 21, “Разработка приложений DataSnap”.

Создание приложений с использованием компонента TSQLClientDataset особых затруднений не составляет. Для отображения данных в таких приложениях необходимы три  компонента: TSQLConnection, TSQLClientDataset и TDatasource. Соответст вующий пример находится на прилагаемом компакт диске в каталоге Editable.

В свойстве TSQLClientDataset.DBConnection указывается ссылка  на необходи мый компонент SQLConnection. Свойства CommandType и CommandText используются точно так же, как было описано в разделе, посвященном компоненту TSQLDataset.

В представленном приложении можно  перемещаться по  набору  данных  в обоих направлениях, а также добавлять, редактировать и удалять записи. Однако  если набор данных  закрыть, то все изменения теряются, поскольку  на самом  деле  все действия осуществляются с буфером набора данных, хранимым компонентом TSQLClientDa- taset в оперативной памяти. Другими  словами, все изменения кэшируются, и для то го чтобы  сохранить их в базе данных  на сервере, необходимо вызвать метод TSQLClientDataset.ApplyUpdates(). В примере, представленном на прилагаемом компакт  диске,  вызов  метода  ApplyUpdates() происходит в обработчиках событий AfterDelete и AfterPost компонента TSQLClientDataset. В результате  вызова этого  метода  записи на сервере обновляются одна за другой. Дополнительную ин формацию об использовании компонента TSQLClientDataset можно  найти в главах

21, 32 и 34 книги Delphi 5 Руководство разработчика, находящейся на прилагаемом CD.

НА ЗАМЕТКУ

Класс TSQLClientDataset реализует лишь некоторые свойства и события компонен- тов TSQLDataSet и TProvider. Если нужно использовать те свойства, которые не реализованы в классе TSQLClientDataset, то лучше вместо него применить обыч- ные компоненты TClientDataset и TDatasetProvider.Распространение приложений dbExpress

Приложения dbExpress могут распространяться в виде полностью автономных ис полняемых файлов или в качестве библиотеки DLL, укомплектованной необходимы ми драйверами. Для компиляции автономного приложения следует добавить в раздел uses модули,  перечисленные в табл. 8.3. Все эти  модули  описаны в интерактивной справочной системе Delphi.

Таблица 8.3. Модули, необходимые для автономного приложения dbExpress

Модуль                                      Необходимо включить

dbExpInt            Если приложение подключается к базе данных  InterBase dbExpOra  Если приложение подключается к базе данных  Oracle dbExpDb2       Если приложение подключается к базе данных  DB2 dbExpMy Если приложение подключается к базе данных  MySQL

Crtl, MidasLib   Если   приложение  dbExpress  использует   такие    клиентские наборы данных, как TSQLClientDataSet

Если приложение поставляется в комплекте с библиотеками, то список необходи

мых библиотек DLL и их назначение приведен в табл. 8.4.

Таблица 8.4. Библиотеки DLL, поставляемые вместе с приложениями dbExpress

Библиотека DLL                          Используется

dbexpint.dll        Если приложение подключается к базе данных  InterBase dbexpora.dll    Если приложение подключается к базе данных  Oracle dbexpdb2.dll Если приложение подключается к базе данных  DB2 dbexpmy.dll     Если приложение подключается к базе данных  MySQL Midas.dll   Если приложение использует клиентские наборы данных

Резюме

Средства dbExpress позволяют разрабатывать простые и надежные приложения, значительно превосходящие производительность аналогичных приложений BDE. Используя механизмы кэширования, реализованные в классах TSQLClientDataset и TClientDataset, разработчики получают  возможность создавать приложения, не зависящие от типа платформы.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии