Использование 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, вызов процедур