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/