Прежде чем вносить какие-либо изменения, СОХРАНИТЕ ПРОЕКТ(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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.