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 :

déchiffrage et correction d'un VBScript.[insertion de valeurs dans une BDD]


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut déchiffrage et correction d'un VBScript.[insertion de valeurs dans une BDD]
    Bonjour à tous !

    J'ai demandé un jour à quelqu'un si c'etait possible d'insérer des valeurs, contenues dans un document texte, dans une base de données a partir d'un fichier VBscript...il m'a dit oui, c'est facile, tu fais ca, ca, ca hop tu vois, je test ca marche tiens prends le script cadeau hahaha...

    Au final, j'ai rien compris, et je me retrouve avec un script, dont la finalité pourrait etre pour moi très très interessante, mais qui ne marche pas.

    Le projet auquel ce script servirais est un vrai casse-tête, donc si vous aimez les sujets d'examen type Licence VBScript ceinture marron option jenmangetoulesjouroptidèj' vous pourrez sans doute m'aider !

    Les scripts que j'ai élaboré moi-même sont vraiment simples, vous n'aurez donc pas de difficulté a les comprendre, j'essayerai cependant d'etre le plus clair possible afin d'éviter que vous vous retrouviez...heu...dans le même cas que moi actuellement...


    Le principe est le suivant...dans un premier temps j'utilise un premier fichier VBscript pour inserer des noms et des prénoms (dont la concaténation prénom.nom donne un pseudo) dans un fichier pseudos.txt stocké a la racine.

    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
    dim rep, nom, prenom
    rep = 6
     
    'création de l'objet objfso  permettant de lire les fichiers
    set objfso = createobject("scripting.filesystemobject")
       'si le fixhier contenant les utilisateurs existe, on l'ouvre, sinon on le crée
       if       objfso.fileexists("c:\pseudos.txt") then
          	    set file = objfso.opentextfile("c:\pseudos.txt", 8) 
       else
    	    set file = objfso.createtextfile("c:\pseudos.txt",FALSE)
       end if
     
       do while rep = 6
                nom = inputbox("Quel est le nom du nouvel utilisateur ?","ajout de nouvel utilisateur")
     
                ' contrôle de saisie 
    	    if nom = "" then
    	    	msgbox("annulation de l'utilisateur, ou saisie incorrecte")
    	    	wscript.quit
    	    end if
     
                prenom = inputbox("Quel est le prénom du nouvel utilisateur ?","ajout de nouvel utilisateur")
     
    	    ' contrôle de saisie
    	    if prenom = "" then
    	    	msgbox("annulation de l'utilisateur, ou saisie incorrecte")
    	    	wscript.quit
    	    end if
     
    	    file.writeline(prenom&"."&nom)
    	    rep = msgbox("voulez-vous rentrer un autre utilisateur ?",292,"ajout de nouvel utilisateur")
     
    	    'contrôle de saisie
    	    if rep = "" then
    	    	msgbox("annulation de l'utilisateur")
    	    	wscript.quit
    	    end if
     
       loop
     
    file.close
    msgbox("Fichier mis à jour dans c:\pseudos.txt avec succès ! Le mot de passe par défaut est toto")
    Ensuite, un deuxieme fichier VBscript, mis dans les taches planifiées s'executant tous les soirs a 18h, insère les valeurs dans un annuaire active directory. J'ai mis DOMAINE pour le nom de domaine, NOM_COMPLET_ORDI pour le nom complet, pour que le script soit plus comprehensible

    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
    57
    58
    59
    60
    61
    62
    63
    On Error Resume Next
    domaine = "dc = DOMAINE, dc = DOMAINE, dc = DOMAINE"
    uo = "UNITE D ORGANISATION"
    set objfso = createobject("scripting.filesystemobject")
     
    set objuser = getobject("LDAP://"& domaine)
    Set objOU = objuser.Create("organizationalUnit", "ou=UNITE DORGANISATION")
    objOU.SetInfo
     
     
    err.number = 0
    set objuser = getobject("LDAP://ou=" & uo & "," & domaine)
    set wshshell = wscript.createobject("wscript.shell")
     
       if       objfso.fileexists("c:\pseudos.txt") then
          	    set file = objfso.opentextfile("c:\erreurs.txt", 8) 
       else
    	    msgbox("Aucun nouvel utilisateur n'a été ajouté depuis la dernière mise à jour !")
    	    wscript.quit
       end if
     
    set fich = objfso.opentextfile("c:\pseudos.txt", 1)
     
    do until fich.atendofstream
    	 username = fich.readline
    	 bout = split(username, ".")
    	 set user = objuser.create("user", "cn=" & username)
    	 user.samaccountname = username
    	 user.sn = bout(1)
    	 user.givenname = bout(0)
    	 user.setinfo
    	 user.accountdisabled = FALSE
    	 user.setpassword "toto"
    	 user.put "pwdlastset", 0
    	 user.setinfo
     
    if err.number <> 0 then
     
       if       objfso.fileexists("c:\erreurs.txt") then
          	    set file = objfso.opentextfile("c:\erreurs.txt", 8) 
       else
    	    set file = objfso.createtextfile("c:\erreurs.txt",FALSE)
       end if
     
       file.writeline(now&" Utilisateur "&username&" déjà existant ! Son mot de passe sera toto")
       erreurs = erreurs + 1
       err.number = 0
    end if
     
    loop
     
    fich.close
     
    Set del = objfso.GetFile("c:\pseudos.txt")
    del.delete
     
    if erreurs <> 0 then
       rep = msgbox("Attention ! "&erreurs&" erreurs ont été générées. Voulez-vous consulter le fichier c:\erreurs.txt pour en connaitre les raisons ?", 308, "Mise à jour d'Active Directory")
    end if
     
    if rep = 6 then
       wshshell.Run "c:\erreurs.txt", 1, true
    end if
    et enfin, que je pourrai une fois corrigé rajouter dans ce bout de code, le script d'exemple que m'a filé l'autre zozo, a partir d'une table créee dans phpmyadmin qui s'appelle test1

    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
    Dim cnx
    Dim valeur
    Set cnx = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    Set fso = CreateObject("scripting.fileSystemObject")
    Set objet = fso.OpenTextFile(".\toto.txt", 8, true)
    cnx.ConnectionString = "DSN=localhost;"
    cnx.Open
    	' cnx.execute "INSERT INTO test1 (chp2, chp3, chp4) VALUES ('val1', 'val2', 'val3');"
    rs.Open "SELECT * FROM test1;", cnx
    while not rs.eof 
    valeur = ("chp1 : " & rs("chp1") &  vbcrlf & " chp2 : " & rs("chp2") & vbcrlf & _ 
    "chp3 : " & rs("chp3") &  vbcrlf & " chp4 : " & rs("chp4") )
    	' cnx.execute "UPDATE test1 SET chp3 = 'New Value' WHERE chp1=" & rs("chp1") & ";" 
    objet.write (valeur & vbcrlf)
    rs.movenext
    wend 
    rs.close
    	'object.close
    set objet = nothing
    set fso = nothing
    set rs = nothing
    set cnx = nothing
    cnx.close

    L'ultime but de ce code est que j'obtienne une table X avec 3 champs : Nom, prénom et Pseudo, sachant que pseudo = prénom.nom


    Je vous remercie sincèrement de l'attention que vous portez pour mon problème !

    Bonne journée !

    Michael

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    salut,
    où est l'erreur... ?
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    bonjour,

    l'erreur est ligne 6, il me dit que la commande en gros n'est pas valide...par contre quand je la commente, erreur sur la ligne 7 me disant que la base n'est pas ouverte...peut etre que la commande d'ouverture est fausse ?

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    A ta place, je n'utiliserai pas le mot file comme nom de variable.
    C'est un mot réservé.

Discussions similaires

  1. [PL/SQl] Insertion de valeurs dans une table
    Par ApprentiOracle dans le forum SQL
    Réponses: 4
    Dernier message: 29/11/2007, 19h05
  2. Insertion de valeur dans une table
    Par The Goion dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/05/2007, 21h14
  3. Réponses: 3
    Dernier message: 14/05/2007, 11h00
  4. Difficulte d'insertion de valeur dans une base de donnees
    Par blondelle dans le forum C++Builder
    Réponses: 10
    Dernier message: 13/04/2007, 21h19
  5. insertion des valeurs dans une colonne
    Par freestyler1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2007, 16h38

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