分配连接句柄 ODBC

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

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

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

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

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

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