2008-12-23 11 views
0

Je travaille avec une application C++ qui utilise SQL Native Client pour communiquer via ODBC avec une base de données SQL Server 2000.SQL Native Client se bloque lorsque la deuxième connexion est ouverte lorsque le regroupement de connexions est activé?

Avant de faire un travail de base de données, j'allouent une poignée de l'environnement comme suit:

retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &EnvironmentHandle);

Ce abouti.

Pour activer la mise en commun de connexion, avant l'instruction ci-dessus, je l'appelle:

retcode = SQLSetEnvAttr(NULL, SQL_ATTR_CONNECTION_POOLING, (SQLPOINTER) SQL_CP_ONE_PER_HENV, SQL_IS_INTEGER);

SQLSetEnvAttr, lorsqu'il est inclus, retourne un bon code, indiquant le succès. Toutefois, il provoque le blocage de mon application la deuxième fois que SQLDriverConnect est appelée pour établir une connexion à la base de données (note: la première connexion a été créée en utilisant SQLDriverConnect et déconnectée en utilisant SQLDisconnect à ce moment.) Si je commente cette ligne, l'application se déroule sans problème.

Ce qui pourrait être à l'origine de cela?

Répondre

0

Cela pourrait être un problème complètement différent (par exemple, je ne l'utilise C++), mais peut-être il vous aide.

L'application sur laquelle je travaille s'est également écrasée lorsque j'ai activé la mise en commun.

Le problème s'est produit lorsque la requête de base de données a renvoyé plusieurs jeux d'enregistrements.

Mon application s'est bloquée lorsque j'ai essayé de passer au jeu d'enregistrements suivant.

Ceci est quelque chose de différent, mais pourrait être lié à votre cas.

Questions connexes