Поделиться через


Выделение дескриптора подключения ODBC

Прежде чем приложение сможет подключиться к источнику данных или драйверу, он должен выделить дескриптор подключения следующим образом:

  1. Приложение объявляет переменную типа SQLHDBC. Затем он вызывает SQLAllocHandle и передает адрес этой переменной, дескриптор среды, в которой выделяется подключение, и параметр SQL_HANDLE_DBC. Например:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. Диспетчер драйверов выделяет структуру, в которой хранятся сведения об инструкции и возвращаются дескриптор подключения в переменной.

Диспетчер драйверов не вызывает SQLAllocHandle в драйвере в настоящее время, так как он не знает, какой драйвер следует вызывать. Он задерживает вызов SQLAllocHandle в драйвере, пока приложение не вызовет функцию для подключения к источнику данных. Дополнительные сведения см. в разделе "Роль диспетчера драйверов" в процессе Подключение ion, далее в этом разделе.

Важно отметить, что выделение дескриптора подключения не совпадает с загрузкой драйвера. Драйвер не загружается до вызова функции подключения. Таким образом, после выделения дескриптора подключения и перед подключением к драйверу или источнику данных единственными функциями, которые приложение может вызывать с помощью дескриптора подключения, являются SQLSet Подключение Attr, SQLGet Подключение Attr или SQLGetInfo с параметром SQL_ODBC_VER. Вызов других функций с дескриптором подключения, например SQLEndTran, возвращает SQLSTATE 08003 (Подключение ion не открыт). Полные сведения см. в приложении B: таблицы перехода состояния ODBC.

Дополнительные сведения об дескрипторах подключений см. в разделе Подключение дескрипторов.