我正在使用一个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
断开连接到这个时候。)如果我对这一行进行评论,应用程序就可以顺利进行。
可能导致这种情况的原因是什么?
答案 0 :(得分:1)
您是否有任何机会遇到此人遇到的同样问题:http://www.mydatabasesupport.com/forums/ms-sqlserver/218008-2003-cluster-sql-2000-connection-pooling-causes-crash.html
答案 1 :(得分:0)
这可能是完全不同的问题(即我不使用C ++),但也许它可以帮助你。
当我开始合作时,我正在处理的应用程序也崩溃了。
数据库查询返回多个记录集时发生问题。
当我尝试移动到下一个记录集时,我的应用程序崩溃了。
这是不同的,但可能与您的情况有关。