Partilhar via


Alocando o identificador de ambiente

A primeira tarefa para qualquer aplicação ODBC é carregar o Gestor de Drivers; A forma como isto é feito depende do sistema operativo. Por exemplo, num computador a correr Microsoft Windows NT Server/Windows 2000 Server, Windows NT Workstation/Windows 2000 Professional ou Microsoft Windows 95/98, a aplicação liga-se à biblioteca do Driver Manager ou chama a LoadLibrary para carregar a DLL do Driver Manager.

A tarefa seguinte, que deve ser feita antes de uma aplicação poder chamar qualquer outra função ODBC, é inicializar o ambiente ODBC e alocar um handle de ambiente, da seguinte forma:

  1. A aplicação declara uma variável do tipo SQLHENV. Depois chama SQLAllocHandle e passa o endereço dessa variável e da opção SQL_HANDLE_ENV. Por exemplo:

    SQLHENV henv1;  
    
    SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv1);  
    
  2. O Driver Manager aloca uma estrutura para armazenar informação sobre o ambiente e devolve o handle do ambiente 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.

Quando a aplicação termina de usar ODBC, liberta o handle do ambiente com SQLFreeHandle. Após libertar o ambiente, é um erro de programação de aplicações usar o handle do ambiente numa chamada para uma função ODBC; Fazê-lo tem consequências indefinidas, mas provavelmente fatais.

Quando o SQLFreeHandle é chamado, o driver liberta a estrutura usada para armazenar informação sobre o ambiente. Note que o SQLFreeHandle não pode ser chamado para um handle de ambiente até que todos os handles de ligação nesse handle de ambiente tenham sido libertados.

Para mais informações sobre o manipulador de ambiente, consulte Manipuladores de Ambiente.