Методы доступа к данным и компоненты доступа.
Принципы работы приложения Delphi с базами данных
Как работает приложение баз данных
Перед детальным разбором методики создания приложений рассмотрим принцип работы приложения с базами данных и компоненты, предназначенные для работы с данными.
Приложение может содержать произвольное число форм. Обычно одна форма отвечает за выполнение группы однородных операций, объединенных общим назначением.
В основе любого приложения баз данных лежат наборы данных, которые представляют собой группы записей (их удобно представить в виде таблиц в памяти), переданных из базы данных в приложение для просмотра и редактирования. Каждый набор данных инкапсулирован в специальном компоненте доступа к данным. В библиотеке компонент Delphi реализован набор базовых классов, поддерживающих функциональность наборов данных, и практически идентичные по составу наборы дочерних компонентов для технологий доступа к данным. Их общий предок — класс TDataSet (Набор Данных).
Для обеспечения связи набора данных с визуальными компонентами отображения данных используется специальный компонент TDataSource (Источник Данных). Его роль заключается в управлении потоками данных между набором данных и связанными с ним компонентами отображения данных. Этот компонент обеспечивает передачу данных в визуальные компоненты и возврат результатов редактирования в набор данных, отвечает за изменение состояния визуальных компонентов при изменении состояния набора данных, передает сигналы управления от пользователя (визуальных компонентов) в набор данных. Компонент TDataSource расположен на странице Data Access Палитры компонентов.
Таким образом, базовый механизм доступа к данным создается триадой компонентов:
- компоненты, инкапсулирующие набор данных (потомки класса TDataSet);
- компоненты TDataSource;
- визуальные компоненты отображения данных.
Рассмотрим схему взаимодействия этих компонентов в приложении баз данных рис ….
Методы доступа к данным и компоненты доступа.
Самым нижним слоем располагается сами базы данных и программное обеспечение для доступа к ним. В качестве программного обеспечения обычно выступают системы управления базами данных (СУБД). Кроме этого, сама Дельфи поставляется в комплекте с библиотеками, которые позволяют получить доступ к некоторым видам баз данных.
Для связи приложения с базами данных предназначен слой компонент доступа к данным. Для каждого типа баз данных должен использоваться свой собственный компонент. Все эти компоненты предоставляют средства контроля над соединением с базой данных, они должны иметь возможность определять физическое имя базы данных, ассоциированной с компонентом, а также, устанавливать или разрывать соединение с базой данных.
Delphi предоставляет компоненты для доступа к данным, реализующие следующие виды доступа:
1. Доступ к локальному или удаленному SQL-серверу InterBase (компоненты страницы InterBase);
2. Доступ посредством легковесных драйверов dbExpress (компоненты страницы dbExpress). В комплект поставки Delphi входят файлы драйверов, которые представляют собой обычные библиотеки динамической компоновки (DLL). В таблице … перечислены типы баз данных и библиотеки динамической компоновки, необходимые для работы с ними.
Таблица 1..Типы поддерживаемых баз данных
Тип базы данных | Имя файла |
InterBase | DBEXPINT.DLL |
DB2 | DBEXPDB2.DLL |
Oracle | DBEXPORA.DLL |
MySQL | DBEXPMYS.DLL |
3. Доступ через ADO-объекты (ActiveX Data Objects), в основе которого лежит применение технологии OLE DB (компоненты страницы ADO). ADO — это часть архитектуры универсального доступа к данным фирмы Microsoft. Доступ к источникам данных обеспечивают так называемые провайдеры OLE DB (в dbExpress для этой цели используются драйверы). В таблице … перечислены провайдеры OLE DB, входящие в состав ADO
Таблица 2 Провайдеры OLE DB
Тип базы данных | Провайдер | Драйвер |
ODBC Drivers | Драйверы ODBC (по умолчанию) | MSDASQL |
MS Access 97 | Jet 3.5 | Microsoft.Jet.OLEDB.3.5 |
MS Access | Jet 4.0 | Microsoft.Jet.OLEDB.4.0 |
MS SQL Server | SQL Server | SQLOLEDB |
Oracle | Oracle | MSDAORA |
О том, что такое ODBC будет написано немного позже.
4. Доступ через машину баз данных BDE (Borland Database Engine), предоставляющую доступ через ODBC-драйверы или через внутренние драйверы машины баз данных BDE (компоненты страницы BDE-палитры инструментов). Этот метод обеспечивает доступ к стандартным источникам данных: Paradox, dBASE, FoxPro, Access. Появление dbExpress сделало технологию BDE устаревшей, поэтому сейчас использовать этот вид доступа не имеет смысла.
Сведем все четыре метода доступа к данным в таблице …
Таблица 3 методы доступа к данным
Метод доступа | Машина баз данных BDE | Провайдеры OLE DB | dbExpress | InterBase |
Компонент доступа к данным | TDatabase | TADOConnection | TSQLConnection | TIBDatabase |
Компоненты набора даных | TTable, TQuery, TField | TADODataSet, TADOTable, TADOQuery | TSQLDataSet, TSQLQuery, TSQLTable, TSQLStoreProc, TSQLClientDataSet | TIBDataSet, TIBTable, TIBQuеry |
Использование компоненты TIBDatabase будет рассмотрено ниже.
Осталось разъяснить, что такое ODBC. ODBC (англ. Open Database Connectivity) — это программный интерфейс доступа к базам данных, разработанный фирмой Microsoft. C помощью ODBC можно разрабатывать приложения для использования доступа к данным, не беспокоясь о тонкостях взаимодействия с конкретной базой данных. Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие стандартные функции из ODBC с учётом особенностей их продукта. Приложения используют эти функции (реализованные в соответствующем конкретному источнику данных драйвере) для унифицированного доступа к различным источникам данных. При применении ODBC требуется помнить, что данная технология доступа к данным использует промежуточный слой, т.е. работа с данными происходит медленнее, чем при прямой работе базой данных, кроме этого технология не рассчитана на работу с большим числом клиентов.