estoy practicando un formulario pero he tenido un tropiezo al quedarme "varado" o trancado en una parte del código ya que se necesita hacer consulta de avance y atraso en la base de datos para explicar un poco más aqui mi código de python
Código Python:
Ver original
''' Created on 17/10/2011 @author: Administrador ''' import wx import sqlite3 as lite class Macro(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size = (400,400)) panel = wx.Panel(self, -1) #Nombres estaticos primaria = wx.StaticText(panel, -1, "ID:", pos = (115,40)) nombre = wx.StaticText(panel, -1, "Nombre y apellido:", pos = (40,80)) cedula = wx.StaticText(panel, -1, "Cedula:", pos = (92,120)) numero = wx.StaticText(panel, -1, "Numero Telefonico:", pos = (35,160)) direccion = wx.StaticText(panel, -1, "Direccion:", pos = (82,200)) #cajas self.cprimaria = wx.TextCtrl(panel, -1, "", pos = (150,40)) self.cnombre = wx.TextCtrl(panel, -1, "", pos = (150,80)) self.ccedula = wx.TextCtrl(panel, -1, "", pos = (150,120)) self.cnumero = wx.TextCtrl(panel, -1, "", pos = (150,160)) self.cdireccion = wx.TextCtrl(panel, -1, "", size = (100,50), pos = (150,200), style = wx.TE_MULTILINE) #botones nuevo = wx.Button(panel, -1, "nuevo", pos = (15,280), size = (50,30)) nuevo.Bind(wx.EVT_BUTTON, self.OnNuevo) deshacer = wx.Button(panel, -1, "deshacer", pos = (68,280), size = (50,30)) deshacer.Bind(wx.EVT_BUTTON, self.OnDeshacer) adelante = wx.Button(panel, -1, "adelante", pos = (121,280), size = (50,30)) adelante.Bind(wx.EVT_BUTTON, self.OnAdelante) atras = wx.Button(panel, -1, "atras", pos = (175,280), size = (50,30)) eliminar = wx.Button(panel, -1, "eliminar", pos = (228,280), size = (50,30)) guardar = wx.Button(panel, -1, "guardar", pos = (282, 280), size = (50,30)) guardar.Bind(wx.EVT_BUTTON, self.OnGuardar) cerrar = wx.Button(panel, -1, "cerrar", pos = (335,280), size = (50,30)) cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar) self.Centre() self.Show() def OnAdelante(self, event): try: con = lite.connect('basededato.sqlite') cur = con.cursor() uno = self.cprimaria.GetValue() dos = self.cnombre.GetValue() tres = self.ccedula.GetValue() cuatro = self.cnumero.GetValue() cinco = self.cdireccion.GetValue() cur.execute("Selec * from empleado where id = "1+"", (uno, dos, tres, cuatro, cinco)) con.commit() cur.close() con.close() except lite.Error, error: dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error') dlg.ShowModal() def OnNuevo(self, event): self.cprimaria.Clear() self.cnombre.Clear() self.ccedula.Clear() self.cnumero.Clear() self.cdireccion.Clear() def OnGuardar(self, event): try: con = lite.connect('basededato.sqlite') cur = con.cursor() uno = self.cprimaria.GetValue() dos = self.cnombre.GetValue() tres = self.ccedula.GetValue() cuatro = self.cnumero.GetValue() cinco = self.cdireccion.GetValue() cur.execute("INSERT into empleado values(?, ?, ?, ?, ?)", (uno, dos, tres, cuatro, cinco)) con.commit() cur.close() con.close() self.cprimaria.Clear() self.cnombre.Clear() self.ccedula.Clear() self.cnumero.Clear() self.cdireccion.Clear() wx.MessageBox("Sus datos fueron guardados exitosamente", "Guardar", wx.OK | wx.ICON_INFORMATION) except lite.Error, error: dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error') dlg.ShowModal() def OnDeshacer(self, event): self.cprimaria.Clear() self.cnombre.Clear() self.ccedula.Clear() self.cnumero.Clear() self.cdireccion.Clear() wx.MessageBox("Se han borrado los campos, satisfactoriamente", "Deshacer", wx.OK | wx.ICON_INFORMATION) def OnCerrar(self, event): self.Destroy() app = wx.App() Macro(None, -1, "Formulario de empleado") app.MainLoop()
yo nunca he hecho este tipo de consultas, y me gustaría si son tan amables de ayudarme o decirme como empezar a construir ese tipo de consultas para adelantar, atras, etc
mi intención era que los datos de la base de datos se reflejen en las cajas de texto y mediante los botones adelante, cambiar el record.
saludos esperare sus respuestas.