Ayuda para insertar datos MySQL

dmunhiz dmunhiz en gmail.com
Lun Sep 10 22:12:39 CEST 2007


Prueba en lugar de
con.commit()
con:
db.commit()

Remitente:
Daniel Muñiz Fontoira
Eu uso software libre [1]
[1]http://www.gnu.org/philosophy/free-sw.gl.html


Manuel Enrique González Ramírez escribiu:
> Hola amigos,
> 
> Tengo una ventana en wx y una conexion a MySQL el problema es que no sé como
> hacer para que los datos de los textos (codigo, nombre y edad) me los
> reconozca la sentencia execute.  Les pongo el código y si alguien me puede
> ayudar de una vez muchas gracias.
> P.D. He hecho de todo, cambiando comillas; separando código de la consulta,
> etc.
> # -*- coding: cp1252 -*-
> #!/usr/bin/python
> 
> import wx
> import MySQLdb as my
> 
> class InsertData(wx.Frame):
>     def __init__(self, parent, id, title):
>         wx.Frame.__init__(self, parent, id, title, size=(280, 200))
> 
>         panel = wx.Panel(self, -1)
> 
>         gs = wx.FlexGridSizer(3, 2, 9, 9)
>         vbox = wx.BoxSizer(wx.VERTICAL)
>         hbox = wx.BoxSizer(wx.HORIZONTAL)
> 
>         codigo = wx.StaticText(panel, -1, 'Codigo')
>         nombre = wx.StaticText(panel, -1, 'Nombre')
>         edad = wx.StaticText(panel, -1, 'Edad')
>         self.sp = wx.SpinCtrl(panel, -1, '', size=(60, -1), min=1, max=100)
>         self.tc1 = wx.TextCtrl(panel, -1, size=(150, -1))
>         self.tc2 = wx.TextCtrl(panel, -1, size=(150, -1))
> 
>         gs.AddMany([(codigo), (self.tc1, 1, wx.LEFT, 10),
>                     (nombre), (self.tc2, 1, wx.LEFT, 10),
>                     (edad), (self.sp, 0, wx.LEFT, 10)])
> 
>         vbox.Add(gs, 0, wx.ALL, 10)
>         vbox.Add((-1, 30))
> 
>         insertar = wx.Button(panel, -1, 'Insertar', size=(-1, 30))
>         cancelar = wx.Button(panel, -1, 'Cancelar', size=(-1, 30))
>         hbox.Add(insertar)
>         hbox.Add(cancelar, 0, wx.LEFT, 5)
>         vbox.Add(hbox, 0, wx.ALIGN_CENTER | wx.BOTTOM, 10)
> 
>         self.Bind(wx.EVT_BUTTON, self.OnInsert, id=insertar.GetId())
>         self.Bind(wx.EVT_BUTTON, self.OnCancel, id=cancelar.GetId())
> 
>         panel.SetSizer(vbox)
> 
>         self.Centre()
>         self.Show(True)
> 
>     def OnInsert(self, event):
>         try:
>             db = my.connect
> (host='localhost',user='root',passwd='12345678',db='ejemplo')
>             cursor = db.cursor()
> 
>             codigo = self.tc1.GetValue()
>             nombre = self.sp.GetValue()
>             edad = self.tc2.GetValue()
> 
>             cursor.execute("insert into datos values('%d','%s','%d')" %
> (codigo,nombre,edad))
> 
>             #resultado=cursor.fetchall()
>             con.commit()
>             cur.close()
>             con.close()
> 
>         except my.Error, error:
>             dlg = wx.MessageDialog(self, str(error), 'Ocurrio un error :(')
>             dlg.ShowModal()
> 
>     def OnCancel(self, event):
>         self.Close()
> 
> 
> 
> app = wx.App()
> InsertData(None, -1, 'INGRESAR DATOS')
> app.MainLoop()
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> 




Más información sobre la lista de distribución Python-es