SQL Native Client を使用して ODBC 経由で SQL Server 2000 データベースと通信する C++ アプリケーションを使用しています。
データベース作業を行う前に、次のように環境ハンドルを割り当てます。
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
が含まれている場合、成功を示す適切なコードを返します。ただし、データベースへの接続を確立するために 2 回目に呼び出されたときに、アプリケーションがクラッシュする原因とSQLDriverConnect
なります (注: 最初の接続は を使用して作成され、この時点SQLDriverConnect
で切断さSQLDisconnect
れます)。この行をコメントアウトすると、アプリケーションは続行します。問題なく。
何が原因でしょうか?