Bonjour,
j'aimerais faire une petite application qui enregistre des données dans une base sqlite via une interface graphique.
Dès que je lance mon programme, j'initialise mes données et je souhaite que
SI la table examen n'est pas créée ALORS le programme l'écrit dans la base lombaire
SINON on passe à la suite...
Voici le message d'erreur qui m'est renvoyé
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 import pygtk pygtk.require("2.0") import gtk import gtk.glade import sqlite3 class lombaire: def __init__(self): self.widgets = gtk.glade.XML('lombaire.glade',"window1") events = {'on_reg_clicked':self.enregistrer,'on_window1_delete_event':self.delete} self.widgets.signal_autoconnect(events) self.conn=sqlite3.connect('lombaire') self.cur=self.conn.cursor() try: self.cur.execute('CREATE TABLE examen (nom VARCHAR(50))') except IOError: print 'table déjà créée' def delete(self,source=None,event=None): gtk.main_quit() def enregistrer(self,source=None,event=None): '''self.truc=self.widgets.get_widget('entry1').get_text() print self.truc self.cur.execute("insert into examen (nom) values (?) ",self.truc) self.conn.commit()''' pass if __name__ == '__main__': app=lombaire() gtk.main()
Mon fichier glade :Traceback (most recent call last):
File "lombaire.py", line 32, in <module>
app=lombaire()
File "lombaire.py", line 17, in __init__
self.cur.execute('CREATE TABLE examen (nom VARCHAR(50))')
sqlite3.OperationalError: table examen already exists
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 <?xml version="1.0"?> <glade-interface> <!-- interface-requires gtk+ 2.16 --> <!-- interface-naming-policy project-wide --> <widget class="GtkWindow" id="window1"> <property name="height_request">150</property> <property name="visible">True</property> <signal name="delete_event" handler="on_window1_delete_event"/> <child> <widget class="GtkVPaned" id="vpaned1"> <property name="visible">True</property> <property name="can_focus">True</property> <child> <widget class="GtkHButtonBox" id="hbuttonbox1"> <property name="visible">True</property> <child> <widget class="GtkButton" id="reg"> <property name="label" translatable="yes">enregistrer</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <signal name="clicked" handler="on_reg_clicked"/> </widget> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <widget class="GtkButton" id="button2"> <property name="label" translatable="yes">button</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> </widget> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <widget class="GtkButton" id="button3"> <property name="label" translatable="yes">button</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> </widget> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> </widget> <packing> <property name="resize">False</property> <property name="shrink">True</property> </packing> </child> <child> <widget class="GtkLayout" id="layout1"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="nom"> <property name="width_request">100</property> <property name="height_request">80</property> <property name="visible">True</property> <property name="label" translatable="yes">Nom</property> </widget> <packing> <property name="x">17</property> <property name="y">42</property> </packing> </child> <child> <widget class="GtkEntry" id="entry1"> <property name="width_request">100</property> <property name="height_request">30</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="invisible_char">●</property> </widget> <packing> <property name="x">100</property> <property name="y">60</property> </packing> </child> </widget> <packing> <property name="resize">True</property> <property name="shrink">True</property> </packing> </child> </widget> </child> </widget> </glade-interface>
Partager