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 :

vbs accès database + liste des bases


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut vbs accès database + liste des bases
    Bonjour voici le code que j'utilise pour me connecter à une base de donnée local. Je souhaite lister les base via la table pg_databe et faire une sortie dans une message box:
    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
     
    Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = "DRIVER={PostgreSQL Unicode};" _
                       & "SERVER=127.0.0.1;" _
                       & "DATABASE=postgres;" _
                       & "UID=toto;PWD=toto"
    conn.Open
     
    Set rst = CreateObject("ADODB.Recordset")
    sql = "select datname from pg_database;"
    rst.open sql,conn
     
    for each datname in rst.fields
      msgbox "Base: "&datname
    next
     
    conn.close
    Seulement voilà arriver au message box il me donne uniquement le nom de la première base puis il sort.
    Je cherche:
    soit à lister à la suite toutes les base(plusieurs box l'une après l'autre)
    dans une même message box toutes les bases

    Merci de votre aide. Il ne manque surement pas grand chose

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    A la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each datname in rst.fields
      msgbox "Base: "&datname
    next
    Essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    While Not rst.EOF
        msgbox "Base: "& datname
        rst.MoveNext
    Wend
    Je l'ai tapé à la main, mais cela devrait marcher

    Ton code précédent parcourant la collection des champs (fields) hors il faut que tu parcours les enregistrements.

    Starec

  3. #3
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    Merci starec.
    En m'appuyant sur cet exemple, voici mon code qui fonctionne bien.
    Le but final étant de faire une maintenance(backup) de base postgres sous windows (et oui! pas le choix, qui n'est pas le mien: linux love.....)
    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
     
    Dim Wshell
    Set Wshell = Createobject("Wscript.Shell")
     
    Set conn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
     
    stRep = "d:\sauv\"
     
    'Initialisation de la connexion à la base postgre locale
    conn.ConnectionString = "DRIVER={PostgreSQL Unicode};" _
    			& "SERVER=127.0.0.1;" _
    			& "DATABASE=postgres;" _
    			& "UID=xxx;PWD=xxx"
    conn.open
     
    'on initialise la liste des bases
    sql = "select datname from pg_database;"
    rst.open sql,conn
     
    'Première passe: on nettoie la base puis
    'On sauvegarde les bases avec pg_dump
    while not rst.eof
    for each datname in rst.fields
    Wshell.Run "vacuumdb -z -d "&datname&" -h localhost -U postgres",0,True
    Wshell.Run "pg_dump -h localhost -U postgres -F c -f "&stRep&datname&".dmp "&datname,0,True
    next
    rst.movenext
    wend
    conn.close
    PS: aurais tu une idée sur la methode que je pourrais utiliser pour exclure de la liste des bases que je ne souhaite pas sauvegarder(exemple, template..)
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cubepiege Voir le message
    (et oui! pas le choix, qui n'est pas le mien: linux love.....)
    Null n'est parfait
    aurais tu une idée sur la methode que je pourrais utiliser pour exclure de la liste des bases que je ne souhaite pas sauvegarder(exemple, template..)
    Merci
    Un champ en plus dans ta table (style Oui/Non ou Booléen, mais je ne connais pas les types disponibles dans ce type de base), qui identifie si tu veux ou non la sauvegarder, et une clause Where dans ta requête SQL pour sélectionner que ce que tu veux.

    Starec

  5. #5
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    Merci pour tes réponses.
    Je clôture.

    Addon: Pour ceux que cela intéresse, afin de filtrer les bases, j'ai tout simplement changer ma requête SQL(suis je bête ! )
    çà donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql = "select datname from pg_database where ((Not(pg_database.datname)='template0' And Not(pg_database.datname)='template1' And Not(pg_database.datname)='postgres'));"
    Voilà c'est réglé.
    PS: pour le bourrin de base on peut utiliser aussi pg_dumpall et basta !

    Bye

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

Discussions similaires

  1. liste des bases sur un serveur
    Par vgaudeul dans le forum Oracle
    Réponses: 8
    Dernier message: 16/12/2005, 10h40
  2. [MySQL] Obtenir la liste des bases de données
    Par cooper_sunz dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/08/2005, 09h50
  3. Réponses: 9
    Dernier message: 25/07/2005, 15h56
  4. Liste des bases d'un serveur SQL Server
    Par ZeKlubb dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/03/2005, 18h18
  5. [C#] [SQL Server] Récupérer la liste des bases d'un serveur.
    Par exe dans le forum Accès aux données
    Réponses: 2
    Dernier message: 05/08/2004, 17h40

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