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

Oracle Discussion :

Utilisation de SQL%ROWCOUNT en VBS


Sujet :

Oracle

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

    Informations forums :
    Inscription : Septembre 2002
    Messages : 64
    Points : 58
    Points
    58
    Par défaut Utilisation de SQL%ROWCOUNT en VBS
    J'ai posté ce message dans la rubrique VBScript (sous-rubrique VB6). N'ayant pas de réponse, je poste ici car c'est aussi une problématique SQL-ORACLE.
    Bonjour,

    Ma problématique actuelle :
    Je voudrais connaitre le nombre d'enregistrements modifiés par un UPDATE.
    Actuellement, je fais un select, qui me donne le nb à modifier, puis l'UPDATE.
    On peut sûrement mieux faire.

    Au fil de mes lectures sur le Net, j'ai découvert le SQL%ROWCOUNT qui s'utilise avec l'Insert, l'Update et le Delete.
    À priori, cela correspondrait exactement à mes besoins.

    Exemple sur le Net :
    SQL> -- Implicit cursors: SQL%ROWCOUNT returns number of rows affected by SQL statement.
    SQL>
    SQL> BEGIN
    2 UPDATE employee
    3 SET salary = salary *2
    4 WHERE id = '01';
    5
    6 DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT);
    7
    8 END;
    9 /
    Problème : Je ne sais pas du tout comment coder cela en VBScript.

    Comment adapter mon code ?
    Code VB : 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
     
    Option Explicit
    Dim StrConnexion, OConnexion
    Set oConnexion =  CreateObject("ADODB.Connection")
    oConnexion.ConnectionTimeout = 30       'Spécifie maximum time (seconds ) for db opening
    oConnexion.CommandTimeout = 30          'Spécifie maximum time (seconds ) for a request
    Dim OResultat
    strConnexion = "Driver={Microsoft ODBC for Oracle}; ..."
    oConnexion.Open strConnexion
     
    ' --- OResultat = oConnexion.Execute("UPDATE MOV SET MOV.JOURNAL='ODG' INTO SQL%ROWCOUNT WHERE MOV.JOURNAL='ODG'")
    '--- MSGBOX OResultat
     
    OResultat = oConnexion.Execute("UPDATE MOV SET MOV.JOURNAL='ODG' WHERE MOV.JOURNAL='ODG'")
     
    oConnexion.Close

    Quelqu'un aurait-il essayé (avec succès ;+)) ce SQL%ROWCOUNT en VBScript ?

    Grand merci d'avance pour ce coup de main.

    Cordialement.
    Gilles Cartairade

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

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

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

    Grand merci à McM !

    Apparemment, ExecuteNonQuery ne fonctionnerait pas en VBScript.
    Ceci dit, cela m'a permit de "fouiller" dans cette direction.
    Et j'ai trouvé :
    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
     
    Dim StrConnexion, OConnexion
    Set oConnexion =  CreateObject("ADODB.Connection")
    oConnexion.ConnectionTimeout = 30       'Spécifie maximum time (seconds ) for db opening
    oConnexion.CommandTimeout = 30          'Spécifie maximum time (seconds ) for a request
    StrConnexion = "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING= ... "
    oConnexion.Open strConnexion
     
    Dim TRequete, OResultat 
    TRequete = "UPDATE "
    '--- TRequete = TRequete &  "MOV SET MOV.JOURNAL='ODG' SQL%ROWCOUNT"   Le SQL%ROWCOUNT génère une erreur
    TRequete = TRequete &  "MOV SET MOV.JOURNAL='ODG' "
    TRequete = TRequete &  "WHERE MOV.JOURNAL='ODG' "
     
    Dim oCmd
    Set oCmd = WScript.CreateObject("ADODB.Command")
    oCmd.ActiveConnection = oConnexion
    oCmd.CommandText = TRequete
    oCmd.Execute OResultat,,-1
     
    msgbox OResultat
    J'ai trouvé la réponse en lisant la page suivante : http://www.w3schools.com/asp/met_comm_execute.asp

    J'espère que cela pourra rendre service à quelqu'un.
    Merci encore à McM.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de SQL%ROWCOUNT en VBS
    Par AdD92 dans le forum VBScript
    Réponses: 1
    Dernier message: 16/07/2015, 17h13
  2. utilisation de sql developper
    Par donny dans le forum Oracle
    Réponses: 4
    Dernier message: 16/08/2006, 17h23
  3. [SQL-Server] Utilisation de SQL Server avec PHP
    Par kagura dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/01/2006, 15h39
  4. Table ASCII utilisée par SQL Server
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/06/2005, 14h31

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