Выделение дескриптора подключения ODBC
Прежде чем приложение сможет подключиться к источнику данных или драйверу, он должен выделить дескриптор подключения следующим образом:
Приложение объявляет переменную типа SQLHDBC. Затем он вызывает SQLAllocHandle и передает адрес этой переменной, дескриптор среды, в которой выделяется подключение, и параметр SQL_HANDLE_DBC. Например:
SQLHDBC hdbc1; SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);
Диспетчер драйверов выделяет структуру, в которой хранятся сведения об инструкции и возвращаются дескриптор подключения в переменной.
Диспетчер драйверов не вызывает SQLAllocHandle в драйвере в настоящее время, так как он не знает, какой драйвер следует вызывать. Он задерживает вызов SQLAllocHandle в драйвере, пока приложение не вызовет функцию для подключения к источнику данных. Дополнительные сведения см. в разделе "Роль диспетчера драйверов" в процессе Подключение ion, далее в этом разделе.
Важно отметить, что выделение дескриптора подключения не совпадает с загрузкой драйвера. Драйвер не загружается до вызова функции подключения. Таким образом, после выделения дескриптора подключения и перед подключением к драйверу или источнику данных единственными функциями, которые приложение может вызывать с помощью дескриптора подключения, являются SQLSet Подключение Attr, SQLGet Подключение Attr или SQLGetInfo с параметром SQL_ODBC_VER. Вызов других функций с дескриптором подключения, например SQLEndTran, возвращает SQLSTATE 08003 (Подключение ion не открыт). Полные сведения см. в приложении B: таблицы перехода состояния ODBC.
Дополнительные сведения об дескрипторах подключений см. в разделе Подключение дескрипторов.