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

Réseau/Web Python Discussion :

Problème de requete SQL - PostgreSQL/Python/Psycopg2 [Python 3.X]


Sujet :

Réseau/Web Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut Problème de requete SQL - PostgreSQL/Python/Psycopg2
    Bonjour,

    Cela fait pas mal de temps que j'ai un petit soucis vraiment bête mais je n'arrive pas à le résoudre seul, c'est assez ragent.

    Le but de mon programme : se connecter à une BDD postgre et envoyer des requêtes sql. Le programme est écrit en python à l'aide de la librairie psycopg2. Le programme marche parfaitement, que ce soit pour la connexion ou l'envoie de requête sql

    Problème : il suffit que je fasse une faute dans une requête pour que toutes les autres requête soit fausses. A le dire comme cela, j'ai l'impression que l'initialisation de la variable qui stocke la requête ne se mets pas à zéro. Aucune erreur est retourné (Windows 10, Visual Studio Code).

    Voici le code dans une balise code et dans un fichier joint pour la personne qui aura vraiment le temps est l'envie. Le code dans le fichier joint est plus "agréable à regarder".

    Je vous remercie énormément d'avance !

    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
    64
     
    #---------------------------------------------------#
    import psycopg2
    import sys
    import os
    import socket
    from getpass import getpass
    #---------------------------------------------------#
    mot_de_passe = getpass()
    requete = None
    #---------------------------------------------------#
    os.system("cls")
     
    # Saisi des données de connexion
    print("\n\t***** Connexion BDD PostgreSQL *****")
    print("\nVeuillez saisir les informations de connexion : ")
    bdd = str(input("base de données : "))
    nom_user = str(input("nom d'utilisateur : "))
    mot_de_passe = str(getpass("mot de passe : "))
    port_user = input("Veuillez saisir le port (si vide, par défaut PostgreSQL) : ")
    if(port_user == ''):
        port_user = None
     
    # Test de connexion
    try:
        os.system("cls")
        print("\n... Connexion à la base de données en cours ...")
        conn = psycopg2.connect(dbname=bdd, user=nom_user, password=mot_de_passe,host='localhost', port=port_user)
        cursor = conn.cursor() # création du curseur
    except(psycopg2.Error):
        print("\n Erreur de connexion à la bdd, veuillez vérifier les info saisies !")
        input("\n Veuillez saisir ENTRER pour quitter le programme ...")
        sys.exit(0) # fermeture du programme
     
    # Affichage Image ASCII
    print("... Connecté avec succès !\n")
    with open('image_elephant.txt', 'r') as f:
    		for line in f:
    			print(line, end='')
     
    while(requete != 'q'):
     
        requete == '' #requete = None
     
        if(requete == ''): # permet de continuer meme si la requete est vide
            continue
        elif(requete == 'q'):
            input("\n\n... Fermeture du logiciel en cours ...\n\nVeuillez saisir ENTRER pour quitter")
            cursor.close() # fermeture du curseur
            conn.close() # fermeture de la connexion
            SystemExit
     
        try:
            requete = str(input("\n--> "))
            cursor.execute(requete)
            # Test de requete avec exception en cas d'erreur --> MARCHE PAS ! Une fois qu'on c'est trompé, toute les requetes suivante sont considérer comme fausses !
        except(psycopg2.ProgrammingError, psycopg2.InternalError): # permet d'eviter un crash si la requete SQL est mauvaise : psycopg2.Error
            print("Erreur, verifier votre requete !")
            continue
     
        results = cursor.fetchall()
        for r in results:
            print(r)
    #---------------------------------------------------#
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Problème avec requete SQL/type NumAuto
    Par Mimisio dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/07/2007, 11h56
  2. problème lancement requete sql
    Par skanderb dans le forum JSF
    Réponses: 4
    Dernier message: 02/05/2007, 16h46
  3. [WD 11] problème de requete SQL-LIKE
    Par fabpeden dans le forum WinDev
    Réponses: 5
    Dernier message: 24/04/2007, 17h07
  4. problème de requete SQL et recherche
    Par franfr57 dans le forum ASP
    Réponses: 1
    Dernier message: 16/03/2006, 13h33
  5. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54

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