Hola a todxs

inser="insert into interfaz values(%s,%s,%s,%s);" %(nombre,apellido,ci,tlf)
                cursor.execute(inser)

debería ser

                inser = "insert into interfaz values(%s,%s,%s,%s)"
                params = nombre,apellido,ci,tlf
                cursor.execute(inser, params)

No deberías incrustar nunca los valores de los parámetros como cadena. Lee el documento http://www.python.org/dev/peps/pep-0249/ (no sé si está en castellano).

El 24/03/12 01:29, Jose Angel Rojas Valerio escribió:
Buenas, tengo el siguiente problema: Tengo un archivo en py donde cargo la interfaz que diseñe con glade, para extraer los datos de mysql lo hace bien, pero el problema esta para insertar, no inserta los datos q le paso, el error creo q esta en el cursor.execute(), abajo dejo el codigo parra ver si me ayudan y adjunto la interfaz de glade.

import gtk
import MySQLdb
validar="abcdefghijklmnopqrstuvwxyz"
db=MySQLdb.connect(host='localhost',user='root',passwd='jarv88',db='prueba_gtk')
cursor=db.cursor()
sql='select * from interfaz'
cursor.execute(sql)
resultado=cursor.fetchall()

def insertar(nombre,apellido,ci,tlf):
    try:

inser="insert into interfaz values(%s,%s,%s,%s);" %(nombre,apellido,ci,tlf)
        cursor.execute(inser)
        db.commit()
        return True
    except:
        print "no se pudo"
        return False
def validar_cad(cad):

if cad.count("1")>=1 or cad.count("2")>=1 or cad.count("3")>=1 or cad.count("4")>=1 or cad.count("5")>=1 or cad.count("6")>=1 or cad.count("7")>=1 or cad.count("8")>=1 or cad.count("9")>=1:
        return False
    else:
        return True
def validar_num(cad_num):
    for c in validar:
        if cad_num.count(c)>=1:

            return False
    else:
        return True


class interfaz:
    def __init__(self):
        builder = gtk.Builder()
        builder.add_from_file("interfaz_prueba.glade")
        self.principal=builder.get_object('ventana_principal')
        self.agregar=builder.get_object('ventana_agregar')
        self.invalido=builder.get_object('ventana_invalido')
        #self.caja=builder.get_object('caja')
        self.caja_nomb=builder.get_object('caja_nomb')
        self.caja_apel=builder.get_object('caja_apel')
        self.caja_ci=builder.get_object('caja_ci')
        self.caja_tlf=builder.get_object('caja_tlf')
        self.bAgregar=builder.get_object('Agregar')
        self.bLimpiar=builder.get_object('bLimpiar')
        self.bGuardar=builder.get_object('bGuardar')
        self.lista=builder.get_object('lista')
        self.tree=builder.get_object('treeview1')
        dict={ "on_Agregar_clicked": self.clickAgregar,
                "on_bGuardar_clicked": self.guardar,
                "on_Salir_clicked": self.salir,
                "on_ventana_principal_destroy": self.salir,
                "on_ventana_agregar_delete_event": self.salir1,
                "on_ventana_agregar_close": self.salir1,
                "on_bLimpiar_clicked": self.limpiar,
                #"gtk_widget_hide": self.salir1
                }
        builder.connect_signals(dict)
        #self.lista.append(["jose","rojas","1","2"])
        self.a=0
        self.b=0
        self.c=0
        self.d=0
        self.principal.set_title("Prueba")
        for registro in resultado:
            nombre_db=registro[0]
            apellido_db=registro[1]
            ci_db=registro[2]
            tlf_db=registro[3]
            self.lista.append([nombre_db,apellido_db,ci_db,tlf_db])
    def clickAgregar(self, widget):
        #self.principal.destroy()
        self.a=0
        self.b=0
        self.c=0
        self.d=0
        self.limpiar(self.agregar)
        #self.__init__()
        #self.agregar.
        self.agregar.run()
        #self.agregar.hide()
        #self.limpiar(self.agregar)
        #self.agregar.hide()
        #self.lista.append(["jose","rojas","1","2"])
        #self.principal.hide()
    def limpiar(self,widget):
        #self.agregar.delete_event()
        #self.agregar.hide()
        self.caja_nomb.set_text("")
        self.caja_apel.set_text("")
        self.caja_ci.set_text("")
        self.caja_tlf.set_text("")
        self.caja_nomb.grab_focus()
    def guardar(self,widget):
        nombre=self.caja_nomb.get_text()
        apellido=self.caja_apel.get_text()
        ci=self.caja_ci.get_text()
        tlf=self.caja_tlf.get_text()
#if nombre.count("1")>=1 or nombre.count("2")>=1 or nombre.count("3")>=1 or nombre.count("4")>=1 or nombre.count("5")>=1 or nombre.count("6")>=1 or nombre.count("7")>=1 or nombre.count("8")>=1 or nombre.count("9")>=1:
        #    self.caja_nomb.grab_focus()
        #    self.caja_nomb.set_text("")
        #    #self.invalido.run()
        #    #self.invalido.hide()
        #else:
            #nombre=self.caja_nomb.get_text()
        #    self.a=1
        if validar_cad(nombre):
            self.a=1
        else:
            self.caja_nomb.grab_focus()
            self.caja_nomb.set_text("")
        if validar_cad(apellido):
            self.b=1
        else:
            self.caja_apel.grab_focus()
            self.caja_apel.set_text("")

        #for c in validar:
        #    if ci.count(c)>=1:
        #        self.caja_ci.grab_focus()
        #        self.caja_ci.set_text("")
                #self.invalido.run()
                #self.invalido.hide()
        #        break
        #else:
        #    self.c=1
        if validar_num(ci):
            self.c=1
        else:
            self.caja_ci.grab_focus()
            self.caja_ci.set_text("")
        if validar_num(tlf):
            self.d=1
        else:
            self.caja_tlf.grab_focus()
            self.caja_tlf.set_text("")

        if self.a==0 or self.b==0 or self.c==0 or self.d==0:
            self.invalido.run()
            self.invalido.hide()

        if self.a==1 and self.b==1 and self.c==1 and self.d==1:
            #if insertar(nombre,apellido,ci,tlf):
            #    self.lista.append([nombre,apellido,ci,tlf])
            #else:
            #    print "no"
            try:
#db=MySQLdb.connect(host='localhost',user='root',passwd='jarv88',db='prueba_gtk')
                #c=db.cursor()
inser="insert into interfaz values(%s,%s,%s,%s);" %(nombre,apellido,ci,tlf) #self.insert="insert into interfaz values("+nombre+","+apellido+","+ci+","+tlf+");"
                cursor.execute(inser)
                self.lista.append([nombre,apellido,ci,tlf])
                db.commit()
            except:
                print "no se pudo"
            #self.lista.append([nombre,apellido,ci,tlf])
            #self.limpiar(self.agregar)
            #self.agregar.hide()

    def salir(self,widget):
        gtk.main_quit()
        #self.principal.show()
    def salir1(self,widget,hide):
        self.agregar.hide()

if __name__ == "__main__":
    interfaz()
    gtk.main()


De antemano gracias por la ayuda q me puedan brindar.


_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a