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

SQLite Discussion :

sqlite3.OperationalError: no such column: wchoix


Sujet :

SQLite

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut sqlite3.OperationalError: no such column: wchoix
    Bonsoir,

    Le message d'erreur mis en titre apparait lors de l'utilisation de ce bout de programme en python 3.3, en fait au niveau de la requete "SELECT ..." en fin de cet extrait :

    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
        def NouvelleQuestion(self):
     
            if self.NombreEnregistrements == 0:
                print("Terminé")
            else :
                self.NoListeChoisi = random.randint(1, self.NombreEnregistrements)
                self.NoEnrChoisi = int(self.list_indices[(self.NoListeChoisi-1)])
                print ("Numéro aléatoire : ", self.NoListeChoisi, "Numero enreg : ", self.NoEnrChoisi)
                print ("liste avant suppression : ", self.list_indices)
                del self.list_indices[(self.NoListeChoisi-1)]
                print ("liste apres suppression : ", self.list_indices)
                self.NombreEnregistrements=len(self.list_indices)
                self.TraitementUnEnr(self.NoEnrChoisi)
            self.RaZFormulaireSaisie()
     
     
     
        def TraitementUnEnr(self, NoEnrChoisi):
     
            print ("Numero dans traitement : ", NoEnrChoisi)
            wchoix=int(NoEnrChoisi)
            cur.execute("""SELECT rowid, Interr_CodeDomaine, Interr_Donnee1Valeur, Interr_Donnee1Commentaires, Interr_Donnee2Valeur, Interr_Donnee2Commentaires FROM InterrogationDonnees WHERE ROWID IS wchoix """) # Lire l'enregistrement 
            for row in cur:          
                print("enr lu : ", row)
    J'ai essayé en ajoutant SELF dans les arguments de la fonction, etc. Le traitement s'effectue sans problème lorsque je remplace wchoix par une constante (ex : 7).

    Message exact (y compris les lignes de suivi) :

    Numéro aléatoire : 12 Numero enreg : 12
    liste avant suppression : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    liste apres suppression : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    Numero dans traitement : 12
    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Python33\lib\tkinter\__init__.py", line 1442, in __call__
    return self.func(*args)
    File "D:/Python/Programmes utilisables/Interrogations Questionnement.py", line 249, in InitialisationListeNo
    self.NouvelleQuestion()
    File "D:/Python/Programmes utilisables/Interrogations Questionnement.py", line 265, in NouvelleQuestion
    self.TraitementUnEnr(self.NoEnrChoisi)
    File "D:/Python/Programmes utilisables/Interrogations Questionnement.py", line 274, in TraitementUnEnr
    cur.execute("""SELECT rowid, Interr_CodeDomaine, Interr_Donnee1Valeur, Interr_Donnee1Commentaires, Interr_Donnee2Valeur, Interr_Donnee2Commentaires FROM InterrogationDonnees WHERE ROWID IS wchoix """) # Lire l'enregistrement
    sqlite3.OperationalError: no such column: wchoix
    Dois-je ouvrir une bouteille de rhum pour me remonter le moral, SVP? (à consommer avec une extréme modération)
    Merci d'avance pour votre aide
    Luc

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 454
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wchoix=int(NoEnrChoisi)
    est une variable de python sqlite ne la connait pas (c'est le sens du message).

    Tu dois donc trouver (avec python) le moyen de mettre la valeur portée par cette variable dans ta requête.

    Au choix

    * Utiliser les fonctions de liaison (sqlite3_bind_???)
    * Concaténer la valeur de ta variable (avec les enrichissements qui vont bien (guillemets...) au texte de ta requête

    Mais tout ça, c'est du python


    Cordialement

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    Bonsoir Acaumes ,

    Ta réponse m'a permis de corriger mon programme ( sachant le nombre d'heures passées sur ce problème ) .
    J'ai éclaté la lecture de l'enregistrement comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            wchoix=int(NoEnrChoisi)
            requete = "SELECT rowid, Interr_CodeDomaine, Interr_Donnee1Valeur, Interr_Donnee1Commentaires, Interr_Donnee2Valeur, Interr_Donnee2Commentaires FROM InterrogationDonnees WHERE ROWID IS "+str(wchoix)
     
            cur.execute(requete) # Lire l'enregistrement
    C'est à dire :
    création de la variable "requete" concaténant le texte de la requête et la variable wchoix
    Puis exécution de la lecture Sqlite.
    Mille mercis
    Cordialement
    Luc

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

Discussions similaires

  1. Erreur sqlite : no such column :
    Par kracels dans le forum Android
    Réponses: 1
    Dernier message: 30/07/2012, 02h45
  2. Erreur SQLite : No Such Column
    Par feldi dans le forum Android
    Réponses: 6
    Dernier message: 07/06/2012, 09h27
  3. Pb avec DROP COLUMN sous SQL Server 2000
    Par debailleul dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/03/2004, 14h38
  4. Alter column => passer de NOT NULL à NULL
    Par JohnGT dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/10/2003, 11h16
  5. Insert ds une column identity
    Par Trahwn dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 06/10/2003, 15h14

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