Hola:
 Si te fijas tengo el commit dentro de un if(cur), de esa manera, si el cursor, 
que es lo que tengo detro del try, falla, no se crearía el cur y por lo tanto 
tampoco se haría el commit()

¿Porqué dices lo del 'except Exception' por ser demasiado general?

Lo único que estoy utilizando es el módulo PyMySQL (porque fue el primero que 
encontré para python 3) de resto nada especial, leo unas cadenas de un fichero, 
y se las paso al la función que les he puesto.

Ahí estoy mirando en San Google a ver que ponen de la excepción, pero hay 
poquito, aunque tiene toda la pinta a ser algo de buffers como tú apuntas.

Gracias.



--- On Mon, 2/21/11, marmolro <marmo...@gmail.com> wrote:

From: marmolro <marmo...@gmail.com>
Subject: Re: [Python-es] 'int' does not support the buffer interface
To: "La lista de python en castellano" <python-es@python.org>
Date: Monday, February 21, 2011, 4:31 PM

Buenas!
Es un error extraño, generalmente relacionado con buffers y el wrapping de 
c/c++ ... si nos das más datos sobre lo que utilizas igual suena más. 
Seguramente la excepción es inocua ya que te deja hacer el commit y te lo deja 
hacer bien, pero mejor investigar :)

Varios apuntes:Hacer un except Exception siempre es mala idea :)El finally se 
ejecutará siempre, por lo que al hacer ahí el commit te arriesgas a hacerlo 
sobre un "bloque" que ha generado excepción. Casualmente, a ti te ha 
funcionado, pero no es lo habitual.



2011/2/21 Spectrum Cuarenta y ocho k <s_...@yahoo.com>

Hola gente, he hecho un programa para insertar registros en una BD. Son 
bastantes, y lo estoy haciendo por tramos de 20.000 más o menos (de forma 
individual, vamos que hago correr el script cada 20000). El caso, es que 
funciona bastante bien, pero cuando llevo 3 o 4 partes, sigue funcionando... 
pero se salta el try. Me explico, inserta el registro,imprime el OK, pero 
también me ejecuta lo que está dentro del try y pone este error: 'int' does not 
support the buffer interface.

Por lo tanto, sigue realizando su función pero enseña el error. Si reinicio el 
ordenador y vuelvo a ejecutarlo (exactamente el mismo código) ya no da el 
error. Me da la impresión que es algún buffer de python. 

¿a alguien le suena algo de esto o parecido?




Venga, un saludo.

def insertar(autor, texto):
        query =
 "INSERT INTO famous_quote (text, author) VALUES (\"%s\", \"%s\")" % (texto, 
autor)
        curs = conn.cursor()
        try:
                curs.execute(query)
        except Exception as errr:

                print("mesaje del fallo: " + str(errr))
                print("Fallo en: " + query)
                pass
        finally:
               
 if(curs):
                        curs.close()
                        conn.commit()
                        print("OK!")


      
_______________________________________________

Python-es mailing list

Python-es@python.org

http://mail.python.org/mailman/listinfo/python-es

FAQ: http://python-es-faq.wikidot.com/





-----Inline Attachment Follows-----

_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/



      
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a