Технология 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.