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 codece code me permet de récupérer le résultat de ma requête sql, il marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager