Московский государственный университет имени М.В.Ломоносова
Опубликован: 20.12.2005 | Доступ: свободный | Студентов: 3142 / 371 | Оценка: 4.22 / 3.86 | Длительность: 12:03:00
ISBN: 978-5-9556-0068-0
Лекция 12:

Реализация доступа к базам данных в среде DELPHI

Аннотация: Описываются классы библиотеки VCL, используемые для доступа к данным приводятся различные механизмы доступа к данным (с использованием ODBC-драйверов, OLE DB-провайдеров), применение курсоров, хранимых как на сервере, так и на клиенте, рассматривается преобразование SQL данных в XML данные.

Механизмы доступа к БД

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 можно представить следующим образом:


\uparrow \downarrow \uparrow \downarrow \uparrow \downarrow \uparrow \downarrow
Машина баз данных BDE Провайдеры OLE DB dbExpress InterBase
\uparrow \downarrow \uparrow \downarrow \uparrow \downarrow \uparrow \downarrow
TDatabase (необязательный) TADOConnection TSQLConnection TIBDatabase
\uparrow \downarrow \uparrow \downarrow \uparrow \downarrow \uparrow \downarrow
Невизуальные компоненты набора даных
TTable, TQuery, TDataSet, TField TADODataSet, TADOTable, TADOQuery TSQLDataSet, TSQLQuery, TSQLTable, TSQLStoreProc, TSQLClientDataSet TIBDataSet, TIBTable, TIBQury
\uparrow \downarrow \uparrow \downarrow \uparrow \downarrow \uparrow \downarrow
( \uparrow свойство DataSet) Компонент "источник данных" - центральный связующий компонент TDataSource
\uparrow \downarrow
( \uparrow свойство DataSource) Визуальные компоненты для работы с данными TDBGrid, TDBEdit, TDBText, TDBMemo, TDBCheckbox, TDBNavigator и др.

Для сохранения данных из БД в XML-формате или двоичном формате, и обратно, для формирования набора данных из XML или двоичного файла применяется провайдер данных.

Графически схема сохранения данных из БД в XML-формате приведена на следующей схеме:


\uparrow \downarrow
Набор данных (TTable, TQuery или др.)
\uparrow (свойство DataSet)
Клиентский набор данных TClientDataSet \to (свойство ProviderName) Провайдер данных TDataSetProvider
\downarrow (метод SaveToFile) \uparrow (метод LoadFromFile)
Файл в одном из следующих форматов: двоичный формат (dfBinary); XML-формат (dfXML); XML-формат, использующий UTF8 (dfXMLUTF8)