Problème de requête oracle aléatoire
Bonjour à tous,
J'utilise excel pour créer un rapport quotidien. Ce rapport est généré sur l'événement Open du fichier excel. Et ce fichier est lancé par un batch qui est lui même lancé par le planificateur de Windows.
Ca fonctionne plutôt bien depuis maintenant un an environ.
Le fichier excel se connecte à une base de données ORACLE et exécute une requête SQL. Celle-ci peut prendre entre 1 à 4 min environ.
Je précise je n'ai rien changé dans le code ou autre.
Depuis quelques temps, le rapport n'est plus généré. En effet, en mettant quelques traces dans le code, je vois que le prog reste bloqué sur l'éxécution de la requête oracle et impossible qu'elle se termine. Je suis obligé de killer et ensuite de relancer. Et lorsque je relance, dans 90% des cas, le rapport se génère bien.
Voilà ce que j'utilise dans le code, peut être que j'ai mal codé ou qu'il y a quelque chose qui déconne. (je ne mettrais pas la requête volontairement)
strCon = MachainedeConnexionàlaBDDOracle
cnDB.ConnectionTimeout = 30
cnDB.ConnectionString = strCon
On Error Resume Next
cnDB.Open
Requete = "MA REQUETE SELECT"
cnDB.CommandTimeout = 3000 ' 900 15 minutes
On Error Resume Next
rsRecords.Open Requete, cnDB
If Err.Number <> 0 Then
EcrireLogFile (Err.Description)
EcrireLogFile (Err.HelpContext)
EcrireLogFile ("La requête ne peut être exécutée : ")
EcrireLogFile (Requete)
Err.Clear
Else
EcrireLogFile ("Requête exécutée avec succés")
Do Until rsRecords.EOF
PARCOURS DES LIGNES DE RESULTAT DE LA REQUETELorsque ça bloque, je ne vois aucune ligne dans mon fichier de log ni
La requête ne peut être exécutéeni
"Requête exécutée avec succés"Du coup, j'ai l'impression que c'est bloqué sur l'éxécution de la requête mais j'avoue que je sèche un peu.
Pour info, je vois bien que la connexion est bien faites à la base de données (j'ai ajouté des logs qui le montre).
Est-ce que vous pourriez m'aider à essayer de résoudre ce problème ?
Je vous remercie d'avance pour votre aide ou pour vos conseils.
Bonjour, juste avec le code difficile de trouver.
Cependant je ne vois pas pourquoi excel vous retournerait un message d'erreur puisque vous lui demandez de continuer.
On Error Resume NextBonjour,
je t'invite pendant un temp d'ajouter des linges qui te permette de voir ou ton code decone!
EcrireLogFile "Début du Code"
EcrireLogFile " cnDB.Open"
EcrireLogFile "rsRecords.Open Requete, cnDB"
EcrireLogFile "Do Until rsRecords.EOFainsi dans ton fichier de Log tu verras ou ton code est passé!