Alocar um identificador de conexão ODBC

Antes que o aplicativo possa se conectar a uma fonte de dados ou driver, ele deve alocar um identificador de conexão, como segue:

  1. O aplicativo declara uma variável do tipo SQLHDBC. Em seguida, ele chama SQLAllocHandle e passa o endereço dessa variável, o identificador do ambiente no qual será alocada a conexão e a opção SQL_HANDLE_DBC. Por exemplo:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. O Gerenciador de Driver aloca uma estrutura na qual armazena informações sobre a instrução e retorna o identificador de conexão na variável.

O Gerenciador de Driver não chama SQLAllocHandle no driver nesse momento porque não sabe qual driver chamar. Ele atrasa a chamada de SQLAllocHandle no driver até que o aplicativo chame uma função para se conectar a uma fonte de dados. Para obter mais informações, consulte Função do Gerenciador de Driver no processo de conexão, mais adiante nesta seção.

É importante observar que alocar um identificador de conexão não é o mesmo que carregar um driver. O driver não é carregado até que uma função de conexão seja chamada. Portanto, depois de alocar um identificador de conexão e antes de se conectar ao driver ou à fonte de dados, as únicas funções que o aplicativo pode chamar com o identificador de conexão são SQLSetConnectAttr, SQLGetConnectAttr ou SQLGetInfo com a opção SQL_ODBC_VER. A chamada de outras funções com o identificador de conexão, como SQLEndTran, retorna o SQLSTATE 08003 (Conexão não aberta). Para obter detalhes completos, consulte o Apêndice B: Tabelas de transição de estado do ODBC.

Para obter mais informações sobre os identificadores de conexão, consulte Identificadores de conexão.