Механизмы доступа к БД
VCL-библиотека классов среды проектирования Delphi предоставляет ряд классов, позволяющих быстро и эффективно разрабатывать различные приложения баз данных.
Эти классы представлены следующими группами:
- компоненты для доступа к данным, реализующие:
- доступ через машину баз данных BDE (Borland Database Engine), предоставляющую доступ через ODBC-драйверы или через внутренние драйверы машины баз данных BDE (компоненты страницы BDE-палитры инструментов);
- доступ через ADO-объекты (ActiveX Data Objects), в основе которого лежит применение технологии OLE DB (компоненты страницы ADO);
- доступ к локальному или удаленному SQL-серверу InterBase (компоненты страницы InterBase);
- доступ посредством легковесных драйверов dbExpress;
- доступ к БД при многозвенной архитектуре (компоненты страницы DataSnap);
- визуальные компоненты, реализующие интерфейс пользователя;
- компоненты для связи источников данных с визуальными компонентами, предоставляющими интерфейс пользователя;
- компоненты для визуального проектирования отчетов.
Основными механизмами доступа к данным, поддерживаемым в Delphi, являются:
- ODBC - доступ через ODBC-драйверы БД или BDE-драйверы;
- OLE DB - доступ с использованием провайдеров данных (OLE DB - это метод доступа к любым данным через стандартный COM-интерфейс);
- средства dbExpress, использующие легковесные драйверы БД;
- средства доступа к распределенным наборам данных в многозвенной архитектуре.
Самый простой механизм управления данными, использующий ODBC-драйверы, может быть реализован по следующей схеме:
- В модуль данных (или в форму) добавляется компонент набора данных (объект класса TDataSet) и устанавливается связь с источником данных, определяемая свойством DatabaseName. Связь может быть указана одним из трех способов: по имени базы данных, каталогу или псевдониму (способ указания связи может быть ограничен типом источника данных). Список всех псевдонимов доступен на этапе проектирования.
- В модуль данных (или в форму) добавляется компонент источника данных (TDataSourse), являющийся центральным связующим звеном между набором данных и элементами управления, отображающими эти данные.
Свойство DataSet компонента типа TDataSourse указывает набор данных, формируемый компонентами таких классов как TTable или TQuery. Если компоненты набора данных и источника данных расположены в модуле данных, то их следует добавить в проект (команда меню File | Use unit). - В форму добавляются элементы управления для работы с данными, такие как TDBGrid, TDBEdit, TDBCheckbox. Они связываются с компонентом источником данных, который указывается свойством DataSource. Имя поля набора данных определяется свойством DataField.
Графически схему работы с базами данных для двухзвенных архитектур в среде Delphi можно представить следующим образом:
| | | | | | |
Машина баз данных BDEПровайдеры OLE DBdbExpressInterBase
| | | |
TDatabase (необязательный)TADOConnectionTSQLConnectionTIBDatabase
| | | |
Невизуальные компоненты набора даных
TTable, TQuery, TDataSet, TField | TADODataSet, TADOTable, TADOQuery | TSQLDataSet, TSQLQuery, TSQLTable, TSQLStoreProc, TSQLClientDataSet | TIBDataSet, TIBTable, TIBQury
| | | |
( свойство DataSet) Компонент "источник данных" - центральный связующий компонент TDataSource
|
( свойство DataSource) Визуальные компоненты для работы с данными TDBGrid, TDBEdit, TDBText, TDBMemo, TDBCheckbox, TDBNavigator и др.
Для сохранения данных из БД в XML-формате или двоичном формате, и обратно, для формирования набора данных из XML или двоичного файла применяется провайдер данных.
Графически схема сохранения данных из БД в XML-формате приведена на следующей схеме:
|
Набор данных (TTable, TQuery или др.)
| (свойство DataSet) |
Клиентский набор данных TClientDataSet| (свойство ProviderName) | Провайдер данных TDataSetProvider
| (метод SaveToFile) | (метод LoadFromFile) |
Файл в одном из следующих форматов: двоичный формат (dfBinary); XML-формат (dfXML); XML-формат, использующий UTF8 (dfXMLUTF8)
Все публикации раздела