分配连接句柄 ODBC

在应用程序可以连接到数据源或驱动程序之前,它必须分配连接句柄,如下所示:

  1. 应用程序声明 SQLHDBC 类型的变量。 然后,它调用 SQLAllocHandle 并传递此变量的地址、要在其中分配连接的环境的句柄以及SQL_HANDLE_DBC选项。 例如:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. 驱动程序管理器分配一个结构,用于存储有关语句的信息,并在变量中返回连接句柄。

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

请务必注意,分配连接句柄与加载驱动程序不同。 在调用连接函数之前,不会加载驱动程序。 因此,在分配连接句柄之后,在连接到驱动程序或数据源之前,应用程序可以使用连接句柄调用的唯一功能是 SQLSetConnectAttrSQLGetConnectAttrSQLGetInfo 以及具有SQL_ODBC_VER选项。 使用连接句柄(如 SQLEndTran)调用其他函数将返回 SQLSTATE 08003(连接未打开)。 有关完整详细信息,请参阅 附录 B:ODBC 状态转换表

有关连接句柄的详细信息,请参阅 连接句柄