Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Изменения поведения — это изменения, для которых синтаксис интерфейса остается неизменным, но семантика изменилась. Для этих изменений функциональность, используемая в ODBC 2.x, ведет себя иначе, чем одинаковая функциональность в ODBC 3.x.
Проявляет ли приложение поведение ODBC 2.x или поведение ODBC 3.x, определяется атрибутом среды SQL_ATTR_ODBC_VERSION. Это 32-разрядное значение имеет значение SQL_OV_ODBC2 для выставления ODBC 2. Поведение x и SQL_OV_ODBC3 для выставления ODBC 3. поведение x .
Атрибут среды SQL_ATTR_ODBC_VERSION задается вызовом SQLSetEnvAttr. Когда приложение вызывает SQLAllocHandle для выделения дескриптора среды, он должен немедленно вызывать SQLSetEnvAttr , чтобы задать поведение, которое он демонстрирует. (В результате возникает новое состояние среды для описания дескриптора в выделенном, но без версии состоянии.) Дополнительные сведения см. в приложении B: таблицы перехода состояния ODBC.
Приложение указывает, какое поведение оно проявляет с атрибутом среды SQL_ATTR_ODBC_VERSION, но атрибут не влияет на подключение приложения к ODBC 2. x или ODBC 3. x driver. Приложение ODBC 3.x может подключаться к драйверу ODBC 2.x или 3.x, независимо от значения атрибута окружения.
ODBC 3. Приложения x никогда не должны вызывать SQLAllocEnv. В результате, если диспетчер драйверов получает вызов SQLAllocEnv, он распознает приложение как ODBC 2. приложение x .
Атрибут SQL_ATTR_ODBC_VERSION влияет на три различных аспекта ODBC 3. Поведение драйвера x :
SQLSTATEs
Типы данных для даты, времени и метки времени
Аргумент CatalogName в SQLTables принимает шаблоны поиска в ODBC 3. x, но не в ODBC 2. x
Параметр атрибута среды SQL_ATTR_ODBC_VERSION не влияет на SQLSetParam или SQLBindParam. SQLColAttribute также не влияет на этот бит. Хотя SQLColAttribute возвращает атрибуты, затронутые версией ODBC (тип даты, точность, масштаб и длина), предполагаемое поведение определяется значением аргумента FieldIdentifier . Если FieldIdentifier равно SQL_DESC_TYPE, SQLColAttribute возвращает ODBC 3. коды x для даты, времени и метки времени; Если FieldIdentifier равно SQL_COLUMN_TYPE, SQLColAttribute возвращает ODBC 2. коды x для даты, времени и метки времени.
Этот раздел содержит следующие подразделы.