Я работаю с приложением C ++, которое использует собственный клиент SQL для связи через 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
.) Я комментирую эту строку, приложение работает без проблем.
Что может быть причиной этого?