Sigue el error MySQL
Juan José Rojo
jjrojoc en hotmail.com
Mie Sep 12 11:52:09 CEST 2007
Perdón, si funciona con el campo edad en la base de datos como int, no lo
había probado.
>From: Juan José Rojo <jjrojoc en hotmail.com>
>Reply-To: La lista de python en castellano <python-es en aditel.org>
>To: python-es en aditel.org
>Subject: RE: [Python-es] Sigue el error MySQL
>Date: Wed, 12 Sep 2007 07:40:23 +0000
>
>
>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
>
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
_________________________________________________________________
Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio con
MSN Entretenimiento. http://entretenimiento.msn.es/
Más información sobre la lista de distribución Python-es