Ayuda para insertar datos MySQL
Manuel Enrique González Ramírez
maengora en gmail.com
Lun Sep 10 21:37:11 CEST 2007
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()
Más información sobre la lista de distribución Python-es