Технология dbExpress

Технология dbExpress была введена компанией Borland в Delphi 6.

Одной из проблем различных технологий доступа к данным, используемым в приложениях Delphi, является трудность распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов. ADO предустановленна в операционной системе, но нуждается в настраиваемых провайдерах данных. При необходимости обновить версию ADO, дистрибутив вашего приложения "потяжелеет" более чем на 2 Мбайт.

Новая технология доступа к данным dbExpress обеспечивает взаимодействие приложения с серверами баз данных. Драйверы dbExpress используют для получения данных исключительно запросы SQL. При этом на клиентской стороне отсутствует кэширование данных, вследствие этого здесь применяются исключительно однонаправленные курсоры и отсутствует возможность прямого редактирования наборов данных. Технология dbExpress является межплатформенной. Это означает, что разработанные приложения могут использоваться в среде Kylix на платформе Linux.

Для функционирования компонентов dbExpress необходим только один драйвер, который взаимодействует напрямую с клиентским программным обеспечением для выбранного сервера БД. В поставку входят драйверы серверов баз данных: DB2, InterBase, MySQL, Oracle.

Однонаправленные наборы данных

В однонаправленных наборах данных не выделяется область оперативной памяти (буферизация или кэширование) с целью организации навигации или модификации. В отличие от dbExpress, в BDE использовались двунаправленные наборы данных с буферизацией в оперативной памяти. Однонаправленные наборы данных более быстродействующие, однако они обладают некоторыми ограничениями.

Ограничения:

- при навигации поддерживаются только методы First ( ) и Next( ). Попытка вызова метода Last ( ) или Prior ( ) приведет к возникновению исключения;

- невозможно изменить данные, так как для них не выделяются буферы редактирования. Тем не менее, для редактирования однонаправленных наборов данных можно использовать другие компоненты (например компонент SimpleDataSet);

- не поддерживается фильтрация, потому что при работе с однонаправленными наборами данных не создается буферов для множества записей.

Обзор компонентов dbExpress

При разработке приложения управления базой данных, используются компоненты, расположенным на вкладке dbExpress.

Компоненты:

 

1 SQLConnection;

2 SQLDataSet;

3 SQLQuery;

4 SQLStoredProc;

5 SQLTable;

6 SQLMonitor;

7 SimpleDataSet.

Компонент SQLConnection – используется для подключения к базе данных.

Порядок применения компонента SQLConnection для подключения к базе данных подробно рассматривается на следующем лабораторном занятии.

Компонент SQLDataSet – используется для извлечения данных из сервера, обеспечивая перемещение по записям только в одном направлении. Такие наборы данных используются для отображения содержимого таблиц, а также результатов выполнения запросов или хранимых процедур.

Извлечение метаданных

Метаданные (metadata) – это информация о самой базе данных. Их также можно извлекать при помощи компонента SQLDataset. Для этого используется процедура TSQLDataset. SetSchemaInfo(), в которой указывается требуемый тип информации.

Компонент SOLMonitor – используется при отладке SQL-приложений. Онрегистрирует все SQL-команды, которые обрабатываются компонентом типа TSQLConnection, указанным в свойстве SQLMonitor.SQLConnection.

Свойство SQLMonitor.Tracelist содержит журнал команд, которыми обмениваются клиент и сервер баз данных. Это свойство является объектом класса, производного от класса TStrings, поэтому содержащуюся в нем информацию можно сохранить в файле или просмотреть в memo-поле.

Компонент SimpleDataSet – предназначен для организации двунаправленного перемещения по таблицам базы данной и редактирования их содержимого. Этот компонент использует dbExpress для извлечения данных, а затем размещает эти данные в оперативной памяти компьютера.

Набор данных SimpleDataSet является клиентским. Это означает, что он объединяет в себе скорость и простоту реализации однонаправленных наборов данных и, в то же время, предоставляет пользователю возможность редактировать данные и произвольно перемешаться в таблице от строки к строке.

Для связи компонента SimpleDataSet с SQL-сервером используется свойство Connection. Здесь можно либо указать ссылку на компонент SQLConnection, либо определить независимое подключение при помощи свойств Connection.ConnectionName и Connection.Params.

Набор данных SimpleDataSet можно сохранять в отдельном файле на диске при помощи метода SaveToFile.