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 : Sélectionner tout - Visualiser dans une fenêtre à part
 _mysql_exception.InterfaceError: (0, '')
Je suis un peu perplexe..

Pour plus de détail :

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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
import create
 
create.newFormat("HD", 0,0,0)
La fonction newFormat(..) est dans le fichier create.py (importé) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
 
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 : 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
 
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 !