Использование ODBC в Visual C++ - Общий обзор ODBC

ОГЛАВЛЕНИЕ

Общий обзор ODBC

ODBC - Open Database Connectivity это интерфейс доступа к базам данных в среде Windows. Для доступа используются специальные драйвера подобно тому как используются драйвера принтера. Какую бы внутри сложно не был устроен принтер команды обращения к нему и печати одинаковы и каждая программа может печатать на принтере. Разработчик любой базы данных может создать свой драйвер ODBC.

ODBC реализует интерфейс доступа к разным SQL совместимым базам данных.

    Клиент
|
ODBC
|
Диспечер драйверов ODCB
|
драйвер БД
|
БД

Идея заключается в том, что приложение может получать доступ к совершенно разным базам данных не меняя при этом код. Вот в чем преимущества ODBC:

API функции одинаковые и не зависят от поставщика

SQL операторы могут быть сгенерированы на любой стадии при компиляции или выполнении.

Данные принимаются в программу в едином формате.

Для работы с источниками данных используют имена DNS - Data Source Name - именованный источник данных ODBC. Диспетчер использует информацию связанную с именем для доступа к БД. С именем связана следующая информация:

  • Местонахождение
  • Тип драйвера
  • Другие обязательные параметры

Существует три типа имен DNS:

  • Пользовательский
  • Системный
  • Файловый

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

Драйвера могут поддерживать три уровня грамматики SQL минимальная грамматика поддерживается всеми драйверами:

  • Минимальная - Create Table, Drop Dtable Select, Insert,Update Dearch, Delete Search Char,VarChar или Long VarChar
  • Основная - Минимальная + Alter Table, Create Index, Drop Index, Create View, DropView, Grant, Revoke Select (полная) Decimal,Numeric,SmallInt,Integer,Real,Float,Double Precision
  • Расширенная - Основная + внешние соединения, поддержка позицирования, Bit,TinyInt, BigInt, Binary, VarVariant, Long, VarBinary, Date, Time, TimeStamp пакетные операторы SQL, вызов процедур