Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Стандарт ODBC

ODBC — это стандарт, описывающий систему интерфейсов, с помощью которых прикладные программы могут обращаться к базам данных и обрабатывать их независимым от СУБД способом. ODBC предоставляет интерфейсы для доступа к реляционным базам данных и базам данных с табличной организацией. Широкое распространение стандарт получил благодаря поддержке Майкрософт.

Архитектура ODBC

На рис. 3.19 схематично изображена архитектура ODBC.

Рис. 3.19. Архитектура ODBC

 

Как видно из рисунка, приложение обращается к диспетчеру драйверов, а диспетчер, в свою очередь, обращается к источнику данных и производит с ними какие-либо действия. Источник данных — это база данных, приложение, операционная система пли даже некая аппаратная платформа. Приложение инициирует запросы на установление соединения с источником данных, на выполнение каких-либо действий с базой данных.

Стандарт ODBC предоставляет разработчику набор интерфейсов для выполнения каждого из этих запросов и регламентирует стандартные коды ошибок, которые будут возвращены приложению в случае неудачного выполнения запроса.
 

Диспетчер драйверов (driver manager) служит связующим звеном между приложениями и драйверами СУБД. Когда приложение инициирует соединение с базой данных, диспетчер определяет тип СУБД и загружает соответствующий драйвер в память (или использует ранее загруженный). Диспетчер драйверов обрабатывает запросы на инициализацию соединения и контролирует формат запросов и порядок их поступления от приложения. Диспетчер драйвера является частью Windows.

 

Драйвер (driver) обрабатывает запросы, поступающие от приложения, преобразует их в набор команд API СУБД и, таким образом, производит какие-либо действия с базой данных. Драйвер отвечает за то, чтобы стандартные команды ODBC выполнялись корректно. В некоторых случаях источит; данных не поддерживает некоторые функции, таким образом, их приходится выполнять драйверу. Если источник имеет полную поддержку SQL, то драйвер всего лишь передает запрос на обработку и получает результаты. На драйвере также лежит функция приведения кодов ошибок, поступающих от источника, к стандартным, определенным в ODBC.

 

Определяют два типа драйверов — одноуровневые и многоуровневые. Одноуровневые обрабатывают вызовы ODBC и операторы SQL. Многоуровневые обрабатывают только вызовы ODBC, оставляя СУБД осуществлять обработку SQL-запросов.

 

Уровни соответствия

Уровень соответствия ODBC (ODBC conformance level) описывает то, какие возможности и функции доступны через API (интерфейс прикладных программ) драйвера, API драйвера содержит набор функций, которые может вызывать приложение для обращения к интерфейсам источника данных. Различают несколько уровней соответствия ODBC, обеспечивающих разные наборы возможностей:

Базовый уровень (Core API):

•          соединение с источником данных;
•          подготовка и выполнение SQL-запросов;
•          получение результирующего набора данных;
•          фиксация и откат транзакций;
•          получение информации об ошибках.

Первый уровень (Level I API):

•          соответствие ODBC на базовом уровне;
•          получение информации о параметрах, возможностях и функциях драйвера;
•          соединение с источниками данных, содержащих информацию, специфичную для драйвера;
•          получение информации из каталога.
 

Второй уровень (Level 2 API):

•          соответствие ODBC па первом и базовом уровнях;
•          обзор возможных соединений и источников данных;
•          использование диалекта SQL данной СУБД;
•          вызов библиотеки преобразований;
•          обработка двунаправленных курсоров.

 

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

Уровни соответствия SQL определяют, какие SQL-операторы, выражения и типы данных доступны драйверу на данном уровне. Стандартом определены три уровня соответствия SQL.

 

Минимальный синтаксис (Minimum SQL grammar):

•          CREATE TABLE, DROP TABLE;
•          оператор SELECT (без вложенных подзапросов);
•          INSERT, UPDATE, DELETE;
•          простые выражения (сравнения, арифметические операции);
•          типы данных CHAR, VARCHAR, LONGCHAR.

Базовый синтаксис (Core SQL grammar):

•          минимальный синтаксис;
•          ALTER TABLE, TREATE INDEX, DROP INDEX;
.           CREATE VIEW, DROP VIEW;
•          GRANT, REVOKE;
•          полный синтаксис оператора SELECT;
•          встроенные функции SUM, COUNT, MAX, MIN, AVG.

Расширенный синтаксис (Extended SQL grammar):

•          базовый синтаксис;
•          UPDATE и DELETE с использованием позиции курсора;
•          скалярные функции SUBSTRING и ABS;
•          переменные даты, времени и временная метка;
•          пакетная обработка операторов SQL;
•          хранимые процедуры.

 

Приложение может вызвать драйвер и определить, какой уровень соответствия SQL он поддерживает,

Драйверы ODBC могут поддерживать многопоточность (multithreaded driver), то есть с одним драйвером могут одновременно работать несколько приложении в синхронном режиме, л нося какие-либо изменения в источник данных. В случае, если драйвер не является многопоточным, он работает только в асинхронном режиме.

Программирование на Delphi



   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru