我正在使用一个 C++ 应用程序,该应用程序使用 SQL Native Client 通过 ODBC 与 SQL Server 2000 数据库进行通信。
在做任何数据库工作之前,我分配一个环境句柄如下:
retcode = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &EnvironmentHandle );
这成功完成。
为了启用连接池,在上述语句之前,我调用:
retcode = SQLSetEnvAttr( NULL, SQL_ATTR_CONNECTION_POOLING, (SQLPOINTER) SQL_CP_ONE_PER_HENV, SQL_IS_INTEGER );
SQLSetEnvAttr
,当包含时,返回一个好的代码,表示成功。但是,它会导致我的应用程序在第二次SQLDriverConnect
调用以建立与数据库的连接时崩溃(注意:此时第一个连接将使用创建SQLDriverConnect
并断开使用SQLDisconnect
。)如果我将此行注释掉,应用程序将继续没有麻烦。
这可能是什么原因造成的?