Je vous écris cette fois car un VBScript que l'une des applications de mon entreprise utilise pour extraire des informations d'une base de données Oracle ne semble pas fonctionner correctement. Voici les faits:VBScript n'exécutant pas statment SQL correctement
Il fait partie du code qui effectue les opérations suivantes:
sSql = "SELECT REQ_PAYMODE" & _ " FROM SYSADM.GBPRESTATIEGROEP" & _ " WHERE 1=1" & _ " AND SLEUTEL = " & sKeyPrestatiegroep Set oRSGBPrest = connADO.execute(sSql) If Not oRSGBPrest.EOF Then sRequestPaymodeKey = oRSGBPrest("REQ_PAYMODE") Else //error handling End If
Tracer l'aide d'un Statement pour Oracle (www.aboves.com) Je peux capturer cette même instruction avec sa valeur correspondante:
SELECT REQ_PAYMODE FROM SYSADM.GBPRESTAT IEGROEP 1 = 1 ET SLEUTEL = 1572499
Maintenant, le VBScript est censé prendre cette valeur et exécuter une autre requête:
sSql = "SELECT PAM_CODE" & _ " FROM SYSADM.PAYMODES" & _ " WHERE 1=1" & _ " AND PAM_KEY = " & sRequestPaymodeKey Set oRSPaymodes = connADO.execute(sSql)
droit dans ce dernier ligne de code, le script génère une erreur qui indique:
ORA-009 36: expression manquant à la ligne XXX -> Set oRSPaymodes = connADO.execute (sSQL) <-
Ce qui signifie essentiellement que la requête dans (3) n'est pas correct, ce qui signifie que pour une raison quelconque sRequestPaymodeKey est vide. Je ne peux pas le dire avec certitude car cette instruction sql défaillante n'apparaît pas dans l'instruction tracer, mais c'est la seule explication que j'ai pu trouver. Cependant, la pire partie est que lors de l'exécution de la requête (2) sur SQLDeveloper (c'est de là que vient la valeur sRequestPaymodeKey) il montre une ligne avec une valeur autre que null ou zéro.
Je ne peux pas penser à autre chose qui pourrait se produire ici, peut-être que c'est juste une chose de serveur ... aucune idée.
Des suggestions de votre part? De toute façon je peux réellement déboguer un fichier VBE?
Votre aide est grandement appréciée!
Pouvez-vous ajouter un enregistrement à votre script vb qui écrit les valeurs de vos variables dans un fichier? – BG100
Oui, j'ai fait ça. Je mets un msgbox dans la première instruction sql et cela montre que la variable sKeyPrestatiegroep a la bonne valeur, mais elle ne renvoie juste pas de lignes quand elle est exécutée – danboh
Quelque chose ne se cumule pas ici. Si oRSGBPrest ne renvoie aucune ligne, vous devriez recevoir une erreur lorsque vous affectez sRequestPaymodeKey parce que vous essayez d'accéder à des champs dans un jeu d'enregistrements vide. – Tmdean