Технология dbExpress
Технология dbExpress
Одной из проблем различных технологий доступа к данным, используемым в приложениях Delphi, является трудность распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов (см. гл. 16).Драйверы доступа к данным
Технология dbExpress обеспечивает доступ к серверу баз данных при помощи драйвера, реализованного как динамическая библиотека. Для каждого сервера имеется своя динамическая библиотека. | Таблица 17.1. Драйверы dbExpress. | Сервер БД | Драйвер | Клиентское ПО | DB2 | Dbexpdb2.dll | Db2cli.dllСоединение с сервером баз данных
Для создания соединения с сервером в рамках технологии dbExpress приложение должно использовать компонент TSQLConnection. Это обязательный компонент, все остальные компоненты связаны с ним и используют его для получения данных.Управление наборами данных
Компонент TSQLConnection позволяет выполнять некоторые операции с подключенными наборами данных и следить за их состоянием. | Свойство: | property DataSetCount: Integer; | …возвращает число подключенных через данное соединение наборов данных.Транзакции
Подобно своим аналогам в BDE и ADO компонент TSQLConnection поддерживает механизм транзакций и делает это сходным образом. | Начало, фиксацию и откат транзакции выполняют методы: | procedure StartTransaction(TransDesc: TTransactionDesc); | procedure Commit(TransDesc: TTransactionDesc);Использование компонентов наборов данных
Набор компонентов dbExpress, инкапсулирующих набор данных, вполне обычен и сравним с аналогичными компонентами BDE, ADO, InterBase Express. Это компоненты TSQLDataSet, TSQLTable, TSQLQuery, TSQLStoredProc. | Примечание | Компонент TSimpleDataSet также относится к рассматриваемой группе, но т. к.Класс TCustomSQLDataSet
Так как общим предком компонентов dbExpress объявлен класс TDataSet, то задачей класса TCustomSQLDataSet является не столько внесение новой функциональности, сколько корректное ограничение возможностей, заложенных в TDataSet.Компонент TSQLDataSet
Компонент TSQLDataSet является универсальным и позволяет выполнять запросы SQL (подобно TSQLQuery), просматривать таблицы целиком (подобно TSQLTable)или выполнять хранимые процедуры (подобно TSQLStoredProc). | Для определения режима работы компонента используется свойство ConimandType (см. выше).Компоненты TSQLTable и TSQLQuery
Компонент TSQLTable предназначен для просмотра таблиц целиком и по основным функциям подобен своим аналогам TTаblе, TADOтаblе,TIBTаblе (подробнее о функциях компонентов таблиц см. часть III). | Для получения табличного набора данных компонент TSQLTable самостоятельно формирует запрос на сервер, используя для этого возможности, унаследованные от предка TCustomSQLDataSet.Компонент TSQLStoredProc
Компонент TSQLStoredProc инкапсулирует функциональность хранимых процедур для их выполнения в рамках технологии dbExpress. Он подобен другим своим аналогам. Подробнее о функциях компонентов хранимых процедур см. часть III.Компонент TSimpleDataSet
Компонент TSimpleDataSet обеспечивает кэширование полученных данных и сделанных изменений на стороне клиента и последующую передачу их на сервер для фиксации.Способы редактирования данных
Несмотря на декларированные недостатки технологии dbExpress – однонаправленные курсоры и невозможность редактирования – существуют программные способы уменьшить масштаб проблемы или даже решить ее. | Во-первых, в нашем распоряжении имеется компонент TSimpleDataSet, который реализует двунаправленный курсор и обеспечивает редактирование данных путем их кэширования на клиентской стороне.Интерфейсы dbExpress. Интерфейсы ISQLDriver и ISQLConnection.
Технология dbExpress основана на использовании четырех базовых интерфейсов, методы которых применяются во всех компонентах dbExpress. При серьезной работе с технологией или при проектировании собственных компонентов информация об этих интерфейсах будет полезна.Интерфейсы ISQLCommand и ISQLCursor
Интерфейс ISQLCommand обеспечивает функционирование запроса dbExpress. Компоненты dbExpress, работающие с наборами данных, используют его для реализации своих методов. | Параметры запроса устанавливаются методом: | function setParameter(ulParameter: Word; ulChildPos: Word; eParamType: TSTMTParamType;Отладка приложений с технологией dbExpress
Наряду с обычными методами отладки исходного кода, в dbExpress существует возможность контроля запросов, проходящих на сервер через соединение. Для этого используется компонент TSQLMonitor. | Через свойство: | property SQLConnection: TSQLConnection; | …компонент связывается с отлаживаемым соединением.Распространение приложений с технологией dbExpress
Готовое приложение, использующее технологию dbExpress, можно поставлять заказчикам двумя способами. | Вместе с приложением поставляется динамическая библиотека для выбранного сервера (см. колонку "Драйвер" табл. 17.1). Она находится в папке \Delphi7\Bin.