Compartir a través de


Asignar un identificador de conexión ODBC

Antes de que la aplicación se pueda conectar a un origen de datos o controlador, debe asignar un identificador de conexión, como se indica a continuación:

  1. La aplicación declara una variable de tipo SQLHDBC. A continuación, llama a SQLAllocHandle y pasa la dirección de esta variable, el identificador del entorno en el que asignar la conexión y la opción SQL_HANDLE_DBC. Por ejemplo:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. El Administrador de controladores asigna una estructura en la que almacenar información sobre la instrucción y devuelve el identificador de conexión en la variable.

El Administrador de controladores no llama a SQLAllocHandle en el controlador en este momento porque no sabe a qué controlador llamar. Retrasa la llamada a SQLAllocHandle en el controlador hasta que la aplicación llama a una función para conectarse a un origen de datos. Para obtener más información, consulte Rol del Administrador de controladores en el proceso de conexión, más adelante en esta sección.

Es importante tener en cuenta que asignar un identificador de conexión no es lo mismo que cargar un controlador. El controlador no se carga hasta que se llama a una función de conexión. Por lo tanto, después de asignar un identificador de conexión y antes de conectarse al controlador o al origen de datos, las únicas funciones a las que puede llamar la aplicación con el identificador de conexión son SQLSetConnectAttr, SQLGetConnectAttr o SQLGetInfo con la opción SQL_ODBC_VER. Al llamar a otras funciones con el identificador de conexión, como SQLEndTran, se devuelve SQLSTATE 08003 (la conexión no está abierta). Para obtener más información, consulte Apéndice B: Tablas de transición de estado ODBC.

Para obtener más información sobre los identificadores de conexión, consulte Identificadores de conexión.