Sigue el error MySQL
Juan José Rojo
jjrojoc en hotmail.com
Mie Sep 12 09:40:23 CEST 2007
Aquí tienes el código funcionando, aunque tuve que poner el campo del spin
en la base de datos como varchar porque me pedía también lo del int, si
alguien sabe como arreglar eso, sería lo único que te falta.
# -*- 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='',db='ejemplo')
cursor = db.cursor()
codigo = self.tc1.GetValue()
nombre = self.tc2.GetValue()
edad = self.sp.GetValue()
print codigo, nombre, edad
cursor.execute('insert into datos (codigo, nombre, edad) values
(%s, %s, %s)', (codigo, nombre, edad))
#resultado=cursor.fetchall()
db.commit()
cursor.close()
db.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()
>From: "Manuel Enrique González Ramírez" <maengora en gmail.com>
>Reply-To: La lista de python en castellano <python-es en aditel.org>
>To: python-es en aditel.org
>Subject: [Python-es] Sigue el error MySQL
>Date: Tue, 11 Sep 2007 18:52:06 -0500
>
>Continua el error al tratar de hacer la conexion.
>Este es el mensaje que me aparece:
>Traceback (most recent call last):
> File "C:\Python25\ejms\dbconecta.py", line 51, in OnInsert
> cursor.execute('insert into datos values(%d,%s,%d)' %
>(codigo,nombre,edad))
>TypeError: int argument required
>
>Y ya he volteado con los %d de todas las formas posibles.
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
_________________________________________________________________
Descarga gratis la Barra de Herramientas de MSN
http://www.msn.es/usuario/busqueda/barra?XAPID=2031&DI=1055&SU=http%3A//www.hotmail.com&HL=LINKTAG1OPENINGTEXT_MSNBH
Más información sobre la lista de distribución Python-es