|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Je voudrais inserer des données depuis une interface Tkinter dans une base de données Postgresql qui s'appele : "firstbase" qui contient une table : "firstbasetable" , et cette table contient 4 chmaps (Id , Prenom , Nom , Phone ) . L'interface graphique contient 3 entrées : Prenom , Nom , Phone , car l'Id s'incrémente tout seul .
Voila le code de ma fonction inserer() : Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
La requête est bonne donc quel est votre problème en fait ?
|
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Bonjour
Merci punkoff pour me repondre , en fait , quand je click sur le boutton "inserer" j'obtient le message d'erreur suivant : Code :
|
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
qu'il ne trouve pas de colonne nommé "prenom" dans la table firstbasetable.
si la requete marche tel quelle avec pgadmin, vous avez surement un problème de connexion ou de droit.. (encore que je pesnes que le message d'erreur serai différent dans les 2 cas cités) |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
essaie de me comprendre :
quand je remplace : Code :
cur.execute("INSERT INTO firstbasetable ( Prenom, Nom, Phone) VALUES (%s, %s, %s)",(firstnamevar, lastnamevar, Phonevar )) Code :
cur.execute("INSERT INTO firstbasetable VALUES (5, 'Prénom5', 'Nom5', '0000000005')") |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
cf message d'erreur, vous utilisez les mauvais nom de colonnes pour faire votre insert
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Bonjour , Oui justement , j'aimerai bien savoir koi faire pour que ça marche
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
oki,
postez le code de création de votre table, ceci est trouvable via pg_admin (create table ..) |
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Ok ,merci , le voila :
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
T'as requête initiale est donc bonne.
La sa sort de mes compétences vu que sa touche plutot ton code python. un test bête, est-ce que ceci marche ? Code :
|
||
|
|
00
|
|
|
#11 | ||
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
ça fonctionne pas , ça renvoie ce message :
Code :
|
||
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Par contre cette ecriture insere bien :
Code :
cur.execute("INSERT INTO firstbasetable VALUES (5, 'Prénom5', 'Nom5', '0000000005')") |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
|
|
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Ok , maintenant la commande suivante à bien fonctionnait :
Code :
cur.execute("""INSERT INTO firstbasetable ("Idpersonnes", "Prenom", "Nom", "Phone") VALUES (6, 'Prénom6', 'Nom6', '0000000006')""") |
|
|
10
|
|
|
#15 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
C'est le problème assez classique d'avoir des guillements autour des noms de colonne au moment de la création de la table sans en deviner les conséquences.
La conséquence est que par la suite il faudra toujours mettre ces guillemets autour du nom de colonne, ce qui est pénible dans les langages de programmation où ce caractère est déjà utilisé pour délimiter les chaines de caractère. En fait les guillemets au moment de la création ne sont utiles que si on a des caractères non standard dans le nom de colonne ou bien si on veut absolument être case-sensitive. Dans le create table montré, les guillemets sont obligatoires autour de clépersonnes à cause de l'accent mais pour le reste il vaut mieux s'en passer. |
|
|
10
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Développeur informatique Inscription : novembre 2011 Messages : 88 ![]() |
Bonsoir estofilo , merci bien ami pour me repondre , j'ai pu enfin inserer mes données .
Le probleme que j'essaie de resoudre maintenant c'est que j'arrive pas à afficher des "é" sur ma Treeview Tkinter ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com