Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2011, 10h34   #1
Invité de passage
 
Inscription : mars 2007
Messages : 15
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mars 2007
Messages : 15
Points : 4
Points : 4
Par défaut MySQLdb exception InterfaceError

Bonjour,

j'ai un probleme un peu bizarre avec Mysqldb (module mysql pour python)

J'ai créé un fichier avec des fonctions qui inserent des enregistrements dans mes tables. Si j'appelle ces fonctions depuis le même fichier, tout fonctionne parfaitement. Si par contre j'appelle une des fonctions depuis un autre fichier, je recois l'erreur suivante :

Code :
 _mysql_exception.InterfaceError: (0, '')
Je suis un peu perplexe..

Pour plus de détail :

J'appelle une fonction depuis la fichier builDB.py :

Code :
1
2
3
4
 
import CREATE
 
CREATE.newFormat("HD", 0,0,0)
La fonction newFormat(..) est dans le fichier create.py (importé) :

Code :
1
2
3
4
5
6
7
8
 
FROM DATABASE import DATABASE
 
db = DATABASE()
 
def newFormat(name, width=0, height=0, fps=0):
    format_query = "INSERT INTO Format (form_name, form_width, form_height, form_fps)  VALUES ('"+name+"',"+str(width)+","+str(height)+","+str(fps)+");"
    db.execute(format_query)
Et j'ai une class Database qui gère la connexion :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
import MySQLdb FROM MySQLdb.constants import FIELD_TYPE
 
class DATABASE():
    def __init__(self):
        server = "localhost"
        login = "seq"
        password = "seqmanager"
        DATABASE = "Sequence"
        my_conv = { FIELD_TYPE.LONG: int }
 
        self.conn = MySQLdb.connection(host=server, user=login, passwd=password, db=DATABASE, conv=my_conv)
        # self.cursor = self.conn.cursor()
 
    def close(self):
        self.conn.close()
 
    def execute(self, query):
        self.conn.query(query)
Le traceback est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Traceback :
 
Z:\sequenceManager\mysql>python buildDB.py
D:\ProgramFiles\Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWa
rning: the sets module IS deprecated
  FROM sets import ImmutableSet
INSERT INTO Format (form_name, form_width, form_height, form_fps) VALUES ('HD',0
,0,0);
Traceback (most recent call last):
  File "buildDB.py", line 182, IN <module>
    CREATE.newFormat("HD")
  File "Z:\sequenceManager\mysql\create.py", line 52, IN newFormat
    db.execute(format_query)
  File "Z:\sequenceManager\mysql\Database.py", line 19, IN execute
    self.conn.query(query)
_mysql_exceptions.InterfaceError: (0, '')
Pour info, le warning est là depuis le début, il ne m'avait pas géné avant.

Toute aide serait bienvenue !
elanari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 02h36   #2
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 843
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 843
Points : 1 318
Points : 1 318
salut, je te préviens je me suis pas mis au python encore, mais bon...

tu aurais plus de succès peut-être dans le forum dédié à python

D'abord 2 questions liées à ta function __init__ :
  • qu'est que les fameux sets? car il semble que ce qui chagrine python c'est que tu peux pas vraiment les modifier si j'ai bien compris...
  • est-ce normal que tu cites "host=", "user=", etc... dans l'appelle à la fonction de connexion plutôt que de mettre directement les valeurs?
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 10h40   #3
Invité de passage
 
Inscription : mars 2007
Messages : 15
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mars 2007
Messages : 15
Points : 4
Points : 4
Merci pour ta réponse.
En, fait j'ai résolu le problème. J'initialisais deux fois la Database et il n'aimait pas trop ça.

Pour ce qui est des sets, je n'ai pas trop compris ce que c'était, j'ai toujours ce warning, mais tout fonctionne parfaitement, donc je ne m'en soucies pas trop;

Et si j'ai créé des variables pour host, user, etc, c'est pour que ce soit plus facile de les changer après. Je trouve que c'est plus propre comme ça.

Merci de ton intérêt en tout cas
elanari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 15h07   #4
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 843
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 843
Points : 1 318
Points : 1 318
cool, oublies pas de passer ton post en "résolu"
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h32.


 
 
 
 
Partenaires

Hébergement Web