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

Scripts/Batch Discussion :

récuperer valeur de retour psql.exe


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Par défaut récuperer valeur de retour psql.exe
    Bonjour à tous,

    A partir d'un fichier batch j’exécute psql.exe pour insérer des lignes dans ma base de donnée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "%rep_exe%%chemin_exe%psql.exe" -h %bd_host% -d %bd_name% -p %bd_port% -U %bd_user% -c " INSERT into suivi.sauv_bd (time_start, statut, size, source, name, dossier) values ( '%now_DT%' , '%process%', %size%, '%src%' , '%LOGFILE%', '%LOGREPD%' ) returning id;"
    J’aimerai récupérer la valeur de l'id qui est retourné.

    J'ai pas mal cherché mais j'ai pas trouvé la solution.
    Merci pour vos retours.

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Pour récupérer la valeur de l'ID retourné lors de l'exécution de la requête SQL ci-dessus, vous pouvez utiliser la redirection de sortie standard.
    Vous pouvez par exemple enregistrer la sortie dans une variable en utilisant la syntaxe suivante de la commande for /f..do :

    Code non testé
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /f "tokens=1" %%i in ('"%rep_exe%%chemin_exe%psql.exe" -h %bd_host% -d %bd_name% -p %bd_port% -U %bd_user% -c "INSERT into suivi.sauv_bd (time_start, statut, size, source, name, dossier) values ('%now_DT%' , '%process%', %size%, '%src%' , '%LOGFILE%', '%LOGREPD%') returning id;" ^| findstr "^[0-9]"') do set "id=%%i"
    pause
    Ainsi, la valeur retournée par la requête SQL sera enregistrée dans la variable "id".

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Par défaut
    Ok je vais tester tout ça demain et je vous redis.
    Encore merci d’avoir pris le temps de me répondre !

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Par défaut
    Bonjour,

    Suite à l’exécution de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1" %%i in ('"%rep_exe%%chemin_exe%psql.exe" -h %bd_host% -d %bd_name% -p %bd_port% -U %bd_user% -c "INSERT into suivi.sauv_bd (time_start, statut, size, source, name, dossier) values ('%now_DT%' , '%process%', %size%, '%src%' , '%LOGFILE%', '%LOGREPD%') returning id;" ^| findstr "^[0-9]"') do set "id=%%i"
    j'ai l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'C:\Users\...\PostgreSQL\13\bin\psql.exe" -h server.net -d base -p 5432 -U sauv -c "INSERT' n’est pas reconnu en tant que commande interne
    Mais je ne suis pas en capacité de corriger. Je fais donc à nouveau appel à votre expérience !

Discussions similaires

  1. [Débutant] Process et "net.exe" avec une valeur de retour
    Par Speed41 dans le forum C#
    Réponses: 9
    Dernier message: 16/07/2014, 14h18
  2. Réponses: 7
    Dernier message: 10/09/2009, 15h00
  3. Réponses: 4
    Dernier message: 12/05/2009, 11h47
  4. [C#] Je n'arrives pas a récuperer la valeur de retour de ma requete
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 8
    Dernier message: 23/06/2006, 14h25
  5. Comment récuperer la valeur de retour d'un .vbs
    Par FabFabFab dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 05/04/2006, 14h45

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