Foros del Web » Programando para Internet » Python »

MySql Commit InnoDB

Estas en el tema de MySql Commit InnoDB en el foro de Python en Foros del Web. Estoy implementando un modulo para manejar la conn a la base de datos desde una sola instancia para eso uso la clase GestorBD. Pero no ...
  #1 (permalink)  
Antiguo 30/08/2010, 22:04
 
Fecha de Ingreso: abril-2008
Mensajes: 68
Antigüedad: 16 años
Puntos: 0
MySql Commit InnoDB

Estoy implementando un modulo para manejar la conn a la base de datos desde una sola instancia para eso uso la clase GestorBD. Pero no me guarda los datos en la base desde de executar una consulta. Realizo commit antes de cerrar el cursor. Las tablas usan InnoDB.
Si alguno ve alguna forma de mejorar la clase por favor aporte

Código:
import MySQLdb

class GestorBD(object):
    instance=None
    def __new__(cls, *args, **kargs):
        if cls.instance is None:
            cls.instance=object.__new__(cls, *args, **kargs)          
        return cls.instance    

    conn = ""
   
    def Connect(self,server):
        self.conf = {"host":server["host"],
            "user":server["user"],
            "passwd":server["passwd"],
            "db":server["db"]}
        try:
            self.conn = MySQLdb.connect(**self.conf)
        except: 
            return False
        
    def Disconnect(self):
        self.conn.close()
        
    def execute(self, consulta):
        self.cursor=self.conn.cursor()
        try:
            self.cursor.execute(consulta)        
            registros=self.cursor.fetchall()           
            return registros
        except MySQLdb.Error, e:
            return False
        self.conn.commit()
        self.cursor.close
        
    def executeone(self, consulta):
        self.cursor=self.conn.cursor()
        try:
            self.cursor.execute(consulta)        
            registro=self.cursor.fetchone ()
            return registro
        except MySQLdb.Error, e:
            return False
        self.conn.commit()
        self.cursor.close
Saludos
  #2 (permalink)  
Antiguo 30/08/2010, 23:12
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: MySql Commit InnoDB

Nunca llegas a hacer el commit, por que siempre retornas antes de llegar al commit

Correccion:
Código Python:
Ver original
  1. def executeone(self, consulta):
  2.         self.cursor=self.conn.cursor()
  3.         try:
  4.             self.cursor.execute(consulta)        
  5.             registro=self.cursor.fetchone ()
  6.             self.conn.commit()
  7.             self.cursor.close
  8.             return registro
  9.         except MySQLdb.Error, e:
  10.             return False
  #3 (permalink)  
Antiguo 31/08/2010, 07:14
 
Fecha de Ingreso: abril-2008
Mensajes: 68
Antigüedad: 16 años
Puntos: 0
Respuesta: MySql Commit InnoDB

ahh GRACIAS RAZPETIA no me habia percatado de eso.

Saludos

Etiquetas: commit, innodb, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:52.