Estou com um problema. Em meu codigo em determinadado momento gera um erro chamado InterfaceError ao executar uma query.
Procurando no google, achei pouca coisa, pois o erro é mau documentado.
Diz que é referente ao módulo, no caso MySQLdb(acho), mas já executei a query no interpretador dinâmico do python e tenho um outro código similar está funcionando normalmente. O problema é apenas nesse trecho específico.
Segue o traceback:
Traceback (most recent call last):
File "/home/artur/workspacePython/INSERTS/Main.py", line 12, in <module>
InsertEmTodoBanco.InsertEmTodoBanco(host='localhost',user='root',passwd='1n5p1r0n123',db='empresa_taxi')
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 20, in __init__
self.criarInsert()
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 61, in criarInsert
tabelas = self.todosRelacionamentos()
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 53, in todosRelacionamentos
for relacionamento in self.relacionamentosDe(tabela[0]):
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 24, in relacionamentosDe
cursor.execute("SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '"+self.db+"' AND TABLE_NAME = '"+tabela+"' AND REFERENCED_TABLE_NAME IS NOT NULL")
File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 155, in execute
charset = db.character_set_name()
_mysql_exceptions.InterfaceError: (0, '')
E a função que dá erro:
def relacionamentosDe(self,tabela):
cursor = self.con2.cursor()
cursor.execute("SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '"+self.db+"' AND TABLE_NAME = '"+tabela+"' AND REFERENCED_TABLE_NAME IS NOT NULL")
rows = cursor.fetchall()
cursor.close()
del(cursor)
self.con2.close()
listaDeRelacionamentos = []
for row in rows:
aux = (row[4],row[5],row[6],row[9],row[10],row[11])
listaDeRelacionamentos.append(aux)
return listaDeRelacionamentos
O init da classe:
class InsertEmTodoBanco(object):
con = None
con2 = None
chartam = 1
db = ''
def __init__(self,host,user,passwd,db,chartam=1):
self.con = MySQLdb.connect(host, user, passwd, db)
self.con2 = MySQLdb.connect(host, user, passwd, 'information_schema')
self.db = db
self.chartam = chartam
self.criarInsert()
Alguém sabe pelo menos o que realmente é esse erro? Ou uma solução para ele?
Question
Artur Galeno
Pessoal,
Estou com um problema. Em meu codigo em determinadado momento gera um erro chamado InterfaceError ao executar uma query.
Procurando no google, achei pouca coisa, pois o erro é mau documentado.
Diz que é referente ao módulo, no caso MySQLdb(acho), mas já executei a query no interpretador dinâmico do python e tenho um outro código similar está funcionando normalmente. O problema é apenas nesse trecho específico.
Segue o traceback:
E a função que dá erro: O init da classe:Alguém sabe pelo menos o que realmente é esse erro? Ou uma solução para ele?
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.