Partilhar via


Alocando um identificador de conexão ODBC

Antes de a aplicação poder ligar-se a uma fonte de dados ou driver, deve alocar uma alavanca de ligação, da seguinte forma:

  1. A aplicação declara uma variável do tipo SQLHDBC. Depois chama SQLAllocHandle e passa o endereço desta variável, o handle do ambiente onde deve alocar a ligação e a opção SQL_HANDLE_DBC. Por exemplo:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. O Driver Manager aloca uma estrutura para armazenar informação sobre a instrução e devolve o handle de ligação na variável.

O Gestor de Drivers não chama SQLAllocHandle no driver neste momento porque não sabe qual driver chamar. Atrasa a chamada do SQLAllocHandle no driver até que a aplicação chame uma função para se ligar a uma fonte de dados. Para mais informações, consulte o Papel do Gestor do Condutor no Processo de Ligação, mais adiante nesta secção.

É importante notar que alocar um manipulador de conexão não é o mesmo que carregar um controlador. O driver não é carregado até que uma função de ligação seja chamada. Assim, após alocar um handle de ligação e antes de se ligar ao driver ou fonte de dados, as únicas funções que a aplicação pode chamar com o handle de ligação são SQLSetConnectAttr, SQLGetConnectAttr ou SQLGetInfo com a opção SQL_ODBC_VER. Chamar outras funções com o handle de ligação, como SQLEndTran, retorna SQLSTATE 08003 (Ligação não aberta). Para detalhes completos, consulte o Apêndice B: Tabelas de Transição de Estado ODBC.

Para mais informações sobre alavancas de ligação, consulte Alavancas de Ligação.