2009-12-08 1 views
0

Je rencontre des problèmes bizarres avec des requêtes paramétrées en mode direct.Problèmes de mode direct du fournisseur Oracle Devart avec des requêtes paramétrées

Fondamentalement, si j'effectue une insertion sur une table qui contient déjà une ligne unique, je reçois une exception d'insertion qui est attendue. Après l'exception d'insertion, j'utilise cette même connexion pour saisir les informations pour lesquelles les données sont déjà verrouillées afin de signaler l'utilisateur (je sais que la connexion est encore bonne à ce stade). Cette connexion est ensuite fermée et renvoyée à la piscine tout cela est bien jusqu'à ce point comme prévu.

Plus tard, lorsque cette connexion est récupérée du pool, j'essaie d'effectuer une simple requête paramétrée de mise à jour et j'obtiens l'exception suivante: ORA-01008: toutes les variables ne sont pas liées. Cela aurait du sens d'obtenir si toutes les variables n'étaient pas liées, mais en regardant la collection OracleParameter, je peux clairement voir que tous les paramètres existent et que leurs valeurs sont correctes. Sans compter que cette requête est exécutée plusieurs fois avant que cette connexion ne soit extraite du pool pour les autres connexions du pool, car il s'agit d'une table de mise à jour générale mise à jour pour chaque requête client. En outre, tout ce code fonctionne correctement avec le mode direct désactivé à l'aide du client Oracle (exactement le même code et l'exécution de la requête qu'en mode direct). Fondamentalement, il semble que pour une raison quelconque en mode direct lorsque l'insertion est effectuée et échoue et la connexion se ferme et remis dans le pool que la connexion est corrompue et échoue lorsqu'il est utilisé à nouveau avec des requêtes paramétrées.

Je produirais un échantillon simple, sauf que le seul problème est que ce problème n'est pas reproductible de manière fiable dans un cas simple.

Info:

  • Ceci est une application client-serveur. Problème se produit même avec un seul client.
  • La connexion est créée et extraite du pool pour chaque requête client et fermée après l'exécution de la requête.
  • En utilisant les derniers Devart.Data.Oracle 5.35.54 et Devart.Data 5.0.16 et j'ai également essayé avec la version précédente avec le mêmes résultats.

Si quelqu'un a rencontré ce ou a des idées de votre aide sera grandement appréciée

grâce

Répondre

0

Nous vous avons répondu here notre forum.

Questions connexes