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 : 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
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