Multipe requête sql dans un script vbs

Multipe requête sql dans un script vbs - VB/VBA/VBS - Programmation

Marsh Posté le 28-04-2015 à 13:30:50    

Bonjour,  
 
J'ai un soucis je recherche comment intégrer une suite de requête sql dans un Vbscript  
 
je m'explique :  
 
en shell les requêtes sql dans un script peuvent se faire comme ça  
 

Code :
  1. result_sql=$(echo "
  2.         whenever sqlerror exit 2;
  3.         set echo off
  4.         set feed off
  5.         set head off
  6.         SELECT
  7.             to_char(Sum(bytes), '999999999999999999999999')
  8.         FROM
  9.             dba_data_files;)


 
et moi je dois faire la même chose mais sous windows donc avec VBscript
 
j'ai essayé cette méthode :  
 
 

Code :
  1. set formatsql = cn.Execute ("whenever sqlerror exit 2;"&_
  2.             "set echo off" &_
  3.             "set feed off" &_
  4.             "set head off" )


mais elle me renvoie des erreurs d’exécution sql :/
 
Quelqu'un aurait la solution s'il vous plait ?  
 
Merci d'avance  
 
Galene

Reply

Marsh Posté le 28-04-2015 à 13:30:50   

Reply

Marsh Posté le 29-04-2015 à 02:37:30    

p-e avec des ';' après chaque commande et un select à la fin?
 
sinon, en faisant cn.execute d'une commande à la fois?
 
edit: et il faut un espace entre le " et le & de la première ligne mais ton IDE as du te le dire.

Message cité 1 fois
Message édité par Arl Guhr le 29-04-2015 à 02:39:33

---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 29-04-2015 à 11:23:57    

Arl Guhr a écrit :

p-e avec des ';' après chaque commande et un select à la fin?
 
sinon, en faisant cn.execute d'une commande à la fois?
 
edit: et il faut un espace entre le " et le & de la première ligne mais ton IDE as du te le dire.


 
 
 
Merci de ta réponse j'ai essayé tes solutions mais aucune ne marche :(  
 
En faite je veux mettre un "whenever sqlerror exit 2" avant de lancer ma requête qui est "SELECT to_char(Sum(bytes),99999999999999) FROM dba_data_files"
 
pour que si j'ai une erreur lors de ma requête sql on me renvoie le code retour 2
 
mon script ressemble à ça pour le moment  

Code :
  1. set cn = CreateObject("ADODB.Connection" )
  2. set rs = CreateObject("ADODB.Recordset" )
  3. set erreur_sql = CreateObject("ADODB.Connection" )
  4. ConnectionString ="Provider=OraOLEDB.Oracle; Data Source=" & _
  5. "(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST="&computername&" )(PORT=1521)))(CONNECT_DATA=(SID="&SERVICE &" )(SERVER=DEDICATED)));" & _
  6. "User Id=system;Password="&PASSWORD &";"
  7. cn.Open connectionString 
  8. set erreur_sql = cn.Execute ("whenever sqlerror exit 2" )
  9. set rs = cn.Execute ("SELECT to_char(Sum(bytes),99999999999999) FROM dba_data_files" )


 
quand j’exécute ce script, mon err.number avant le

Code :
  1. set erreur_sql = cn.Execute ("whenever sqlerror exit 2" )

est à 0
et après cette commande il passe à -2147217900  
 
j'ai essayé "whenever sqlerror exit 2;" (avec le ";" ) j'ai la même erreur.
 
Cordialement,
 
Galène
   

Reply

Marsh Posté le 30-04-2015 à 07:30:07    

C'est p-e naif de ma part mais pourquoi tu as besoin de cette commande?
Si ton SQL n'est pas correct, tu recevra une erreur via le err.number <> 0
Si la connection saute, tu le saura aussi avec le cn.status il me semble par exemple.
 
Et l'autre truc bizarre, c'est le type de ton objet de retour cn.execute renvoie un recordset alors que tu assigne à une connection :/ (l'erreur vient p-e juste de là d'ailleurs)


---------------
il s'appel le ronge me doute
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed