Vraiment pas facile de trouver de la doc sur le sujet..
Mais bon je tombe sur un probl=E8me tr=E8s basic...
Voici mon code
# -*- coding: Latin-1 -*-
from Tkinter import *
import MySQLdb, sys
class Glob:
""" Espace de noms pour les variables et fonction <pseudo-
globales>"""
dbName =3D "ludoreve" # nom de la base
user =3D "dbrancia" # utilisateur
passwd =3D "xxxxxxx" # mot de pass
host =3D "192.168.1.33" # adresse
class GestionBD:
"""Mise en place et intefacage d'une base de donnes MySql"""
def __init__(self, dbName, user, passwd, host, port =3D3306):
"Etablissement de la connection"
try:
self.baseDonn =3D MySQLdb.connect(db =3D dbName,
user =3D user,
passwd =3D passwd,
host =3D host,
port =3D port)
except Exception, err:
print 'La connection avec la base de donn=E9es a =E9chou=E9 :\n
Erreur d=E9tect=E9e :\n%s' % err
self.echec =3D 1
else:
self.cursor =3D self.baseDonn.cursor()
self.echec =3D 0
# Intergration du menu :
fileMenu.configure( menu =3D me1)
class Application(Frame):
"""Application principale"""
def __init__(self, boss =3DNone):
Frame.__init__(self)
self.master.title('Fen=EAtre avec menus')
mBar =3D MenuBar(self)
mBar.pack()
self.can =3D Canvas(self, bg=3D'light grey', height=3D190,
width=3D250, borderwidth=3D2)
self.can.pack()
self.pack()
def connecter(self):
## self.can.delete(ALL)
bd =3D GestionBD(Glob.dbName, Glob.user,Glob.passwd, Glob.host)
if bd.echec():
print "Echec sur la base de donnee"
if __name__ =3D=3D '__main__':
app =3D Application()
app.mainloop()
et le message re=E7ut lors de la selection connecter
python main.py
La connection avec la base de donn=E9es a =E9chou=E9 :
Erreur d=E9tect=E9e :
(2003, "Can't connect to MySQL server on '192.168.1.33' (111)")
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "main.py", line 90, in connecter
if bd.echec():
TypeError: 'int' object is not callable
class GestionBD: def __init__(self, dbName, user, passwd, host, port 306):
[...]
self.echec = 1
[...]
class Application(Frame):
[...]
def connecter(self):
[...]
if bd.echec(): print "Echec sur la base de donnee"
File "main.py", line 90, in connecter if bd.echec(): TypeError: 'int' object is not callable
Sûrement des parenthèses en trop.
-- Alain.
Mickaël Wolff
Le 22/07/2010 18:37, DGBR a écrit :
File "main.py", line 90, in connecter if bd.echec(): TypeError: 'int' object is not callable
Pourtant le message est clair : echec est un int. En tout cas, c'est ce que tu lui assigne aux lignes 42 et 45. Du coup, echec n'est ni une fonction, ni un functor, et ne peut pas être appelée (is not callable).
File "main.py", line 90, in connecter
if bd.echec():
TypeError: 'int' object is not callable
Pourtant le message est clair : echec est un int. En tout cas, c'est
ce que tu lui assigne aux lignes 42 et 45. Du coup, echec n'est ni une
fonction, ni un functor, et ne peut pas être appelée (is not callable).
File "main.py", line 90, in connecter if bd.echec(): TypeError: 'int' object is not callable
Pourtant le message est clair : echec est un int. En tout cas, c'est ce que tu lui assigne aux lignes 42 et 45. Du coup, echec n'est ni une fonction, ni un functor, et ne peut pas être appelée (is not callable).