2010-10-28 2 views
1

J'ai un problème. Eh bien, j'ai une application VB6 qui se connecte à une base de données Oracle. Normalement, il utilise une seule session pour se connecter à la base de données, mais après l'exécution d'une requête de mise à jour sur une table, il ouvre un autre, sur Wich il fonctionne une seule requête: SELECT VALUE FROM SYS.NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_NCHAR_CHARACTERSET' La requête de mise à jour est:Oracle mutiple session pour une application

UPDATE SYS_PASS set LAST_LOG = SYSDATE where ID = 'xxxx' 

Tous idee pourquoi cela se produit, ou comment pourrais-je me débarrasser de cette session supplémentaire?

+0

Quel est le problème? – ksogor

+0

"N'importe quelle idée pourquoi cela se passe, ou comment pourrais-je me débarrasser de cette session supplémentaire?" ---- cette session extra-inutile est le problème. – maephisto

+0

Vous n'avez pas de problème avec Oracle, vous avez un problème avec votre application VB6. – ksogor

Répondre

1

Cette déclaration supplémentaire SQL doit être généré soit par

  • votre propre programme VB6, auquel cas vous devez corriger vous-même
  • « quelque chose » dans votre pile de technologie (le pilote ODBC?), Dans ce cas, vous devez remplacer tout ou partie de cette pile technologique. ce qui peut être faisable ou pas (mais bon, si vous voulez vraiment vous débarrasser de cette déclaration supplémentaire ...)
0

Si vous voulez savoir ce que pour votre base de données sélectionnez, puis demandez à propos de select (décrivez comment vous détecté extra select etc), pas sur l'application, alors que les gens ne comprendront pas quel problème avez-vous.

Votre deuxième requête s'exécute sur la connexion ouverte elle-même et non sur toute autre connexion.

Il se peut que vous voyiez une autre connexion à cause du regroupement de connexions. Vous pouvez le vérifier en définissant Pooling = false dans la chaîne de connexion.