Vbscript Gérer retour sql "Aucune ligne sélectionnée"
Bonjour,
J'ai une fonction qui me permet se me connecter à ma base de données Oracle, qui effectue une commande et récupère le résultat de cette commande.
Voila mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| function requete_sql()
On Error Resume Next
if SERVICE <> "" then
Set WshShell = CreateObject("WScript.Shell" ) 'verifie si le service est present
commande = "cmd /c sc query state= all | findstr OracleService | findstr SERVICE_NAME | findstr /I OracleService"&SERVICE&"$"
return =wshshell.run(commande,true,1)
if return = 0 then
Set env = WshShell.Environment("PROCESS" )
computername = env("COMPUTERNAME" )
set cn = CreateObject("ADODB.Connection") 'script permettant la connexion au serveur SQL en récupérant les valeur saisie de -s, -l et -p
set rs = CreateObject("ADODB.Recordset") 'Connexion à la base de données
ConnectionString ="Provider=OraOLEDB.Oracle; Data Source=" & _
"(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST="&computername&")(PORT=1521)))(CONNECT_DATA=(SID="&SERVICE &")(SERVER=DEDICATED)));" & _
"User Id="&LOGIN &";Password="&PASSWORD &";"
cn.Open connectionString 'Connexion à la base de données
sql = "SELECT " &_
"* " &_
"FROM ( " &_
"SELECT "&_
"status, " &_
"to_char(start_time, 'DD/MM/YYYY-HH24:Mi:SS'), "&_
"execution_time " &_
"FROM " &_
"AL_HISTORY " &_
"WHERE " &_
"service = '"&JOB &"' " &_
"ORDER BY " &_
"norm_inst_exec desc " &_
") "&_
"WHERE " &_
"rownum = 1"
set rs = cn.Execute (sql)
CODE_ERREUR = err.number
if CODE_ERREUR = 0 then
result_job = CStr((rs(0)))
result_start_time = (rs(1))
result_execution_time = CInt((rs(2)))
else
CODE_ERREUR = 2 'si erreur CODE_ERREUR prend la valeur 2 et on lance la fonction gest_erreur_sql
gest_erreur_sql()
end if
else
wscript.echo "Service invalide"
WScript.Quit(ST_UK)
end if
end if
gest_erreur_sql()
end function |
ce code me permet de récupérer le résultat de ma requête sql, il marche très bien.
le problème c’est lorsque que le JOB saisie dans la requête n'existe pas.
quand j'effectue ma requête sous Oracle le retour de la requête est "aucune ligne sélectionnée"
mais avec le recordset je n'arrive pas à récupérer la valeur "aucune ligne sélectionnée", le recordset est vide et le err.number l'est aussi...
est ce que vous auriez une idée de comment faire pour récupérer ce résultat s'il vous plait ?
Merci d'avance
Galène