IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Vbscript Gérer retour sql "Aucune ligne sélectionnée"


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Par défaut 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 : 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

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Je verrai bien une insertion après la ligne 43 sous le Else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If rs.EOF Then 'Recordset vide
    Attention ton recordset est ouvert, à ce stade, il faudrait peut être ajouter rs.Close et cn.Close plus un nettoyage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set cn = Nothing
    Set rs = Nothing
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 64
    Par défaut
    Bonjour,

    J'effectue beaucoup d'extraction à partir d'une base ORACLE.
    Si je n'ai pas d'enregistrement sélectionné, j'arrête le traitement.
    Je code ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    On Error Resume Next
    '--- Récupération de la Requete SQL ORACLE
    OResultat.Open Requete, oCnxArcole,3,3 
    If Err.Number<>0 Then   '--- Echec de connexion à Oracle
    ...
    NbLus = OResultat.RecordCount
    If NbLus = 0 .... arrêt du traitement
    Ai-je répondu à ta problématique ?
    Cordialement.

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/03/2013, 18h24
  2. sql ne retourne aucune ligne
    Par sirina88 dans le forum Débuter
    Réponses: 2
    Dernier message: 13/10/2011, 09h23
  3. ligne sélectionnée dans une dbGrid
    Par RBIK dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/07/2004, 17h13
  4. Réponses: 2
    Dernier message: 01/06/2004, 15h08
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo