Создание простейшего клиента БД в Delphi. Краткое описание интерфейса Turbo Delphi 2006. Примитивная программа работы с БД, страница 2

Прежде чем вносить какие-либо изменения,  СОХРАНИТЕ ПРОЕКТ(File>Save Project As) в каком-либо отдельном каталоге. В дальнейшем сохранение возможно простым щелчком мышью по пиктограмме со стопочкой дискет. Сохраняться настоятельно рекомендуется как можно чаще, особенно там, где это  особо оговорено данными методическими указаниями.

Как и в предыдущих версиях Delphi при написании приложений для работы с БД невизуальные компоненты принято размещать на специально выделяемой для этого форме, называемой DataModule.

Это делается с той целью, чтобы обеспечить доступ к БД всем другим формам приложения. Такой подход настоятельно рекомендуется при написании больших проектов, при написании же простых приложений, работающих с БД, состоящими из 5-7 таблиц (и 2-3 форм), рекомендацией допускается принебречь. Мы принебрегать не будем и все сделаем  в соответствии с документацией по Delphi.

Для создания DataModule следует воспользоваться меню: File>New>Other, затем выделяем ветвь  «Delphi Files» и в правой части окна щелкаем по DataModule. .Как уже говорилось, список элементов палитры компонентов меняется динамически и в том случае, если форма DataModule активна, большинство визуальных компонентов на их обычных закладках отображаться не будут.

Предыдущие попытки создать универсальный интерфейс для разнообразных БД имели ряд проблем. Одни решения были очень большими, медленными и сложными для распространения, потому что они пытались взять на себя слишком много. Другие предлагали подход "наименьшего общего знаменателя", что не позволяло разработчикам использовать специфические особенности конкретной базы данных. Третьи предлагали комплексный подход с написанием драйверов, получая в результате ограниченную функциональность, низкую скорость или большое количество ошибок.

Borland dbExpress преодолевает эти проблемы  чтобы решить следующие 6 задач

  • минимизировать объем и количество используемых ресурсов
  • получить максимальную скорость работы
  • обеспечить кросс-платформенность
  • обеспечить легкость распространения
  • обеспечить легкость разработки драйверов
  • дать разработчику больше управления памятью и сетевым трафиком

Драйверы dbExpress небольшие по объему и быстрые, потому что они обеспечивают достаточно небольшую функциональность. Каждый драйвер выполнен в виде dll (на платформе Windows) или как so (shared library на Linux).

Следующая таблица показывает компоненты dbExpress, которые соответствуют компонентам BDE. Обратите внимание, что в dbExpress нет аналога компоненту BatchMove из BDE.

BDE

dbExpress

TDatabase

TSQLConnection

TQuery

TSQLQuery

TStoredProc

TSQLStoredProc

Ttable

TSQLTable

нет аналога

TSQLDataSet

TBatchMove

нет аналога

утилита SQL Monitor

TSQLMonitor

TSession

нет

TUpdateSQL

нет

NestedDataSet

нет

BDEClientDataSet

SimpleDataSet

Как вы заметили, здесь не представлены аналоги компонентов TTransaction и TIBTransaction. Функции этих компонентов включены в TSQLConnection.  Данный «перенос функциональности» обусловлен иным порядком работы с транзакциями в dbExpress. Как видите, меньше работы при удалении кода, явно управляющего транзакциями, чем при его модификации. Давайте посмотрим на эти три пункта подробнее.

После старта транзакции и перед каждым Commit вам нужно добавить вызовы ApplyUpdates всех ClientDataSet, которые участвуют в транзакциях. До вызова ApplyUpdates никакие изменения в базу данных не попадут, поэтому делать Commit не имеет смысла.

В клиент-серверных приложениях BDE управление транзакциями выглядит следующим образом:

l  Старт транзакции

l  Редактирование данных пользователем

l  Commit или Rollback