分配环境句柄

任何 ODBC 应用程序的第一个任务均为加载驱动程序管理器;如何执行此操作取决于操作系统。 例如,在运行 Microsoft Windows NT Server/Windows 2000 Server、Windows NT Windows NT Workstation/Windows 2000 Professional 或 Microsoft Windows 95/98 的计算机上,应用程序要么链接到驱动程序管理器库,要么调用 LoadLibrary 以加载驱动程序管理器 DLL。

下一个任务(必须在应用程序可以调用任何其他 ODBC 函数之前完成)是初始化 ODBC 环境并分配环境句柄,如下所示:

  1. 应用程序声明 SQLHENV 类型的变量。 然后,它调用 SQLAllocHandle 并传递此变量的地址和 SQL_HANDLE_ENV 选项。 例如:

    SQLHENV henv1;  
    
    SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv1);  
    
  2. 驱动程序管理器分配一个结构,用于存储有关环境的信息,并在变量中返回环境句柄。

驱动程序管理器目前不会在驱动程序中调用 SQLAllocHandle,因为它不知道要调用哪个驱动程序。 在应用程序调用函数以连接到数据源之前,它会延迟在驱动程序中调用 SQLAllocHandle。 有关详细信息,请参阅本节后面的连接过程中的驱动程序管理器角色

应用程序使用 ODBC 完成后,它将使用 SQLFreeHandle 释放环境句柄。 释放环境后,在调用 ODBC 函数时使用环境的句柄是应用程序编程错误;这样做的后果尚不明确,但可能引发致命后果。

调用 SQLFreeHandle 时,驱动程序会释放用于存储有关环境的信息的结构。 请注意,在释放该环境句柄上的所有连接句柄之前,无法为环境句柄调用 SQLFreeHandle

有关环境句柄的详细信息,请参阅环境句柄