Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/07/2011, 12:25
Avatar de bosterkill
bosterkill
 
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con consulta a base de datos sqlite3

Disculpe que no les di mucha información al respecto bueno lo que tengo hasta ahora es así 2 archivos .py

Frame.py

Código Python:
Ver original
  1. import wx
  2. import sqlite3 as dbapi
  3.  
  4. class MyFrame(wx.Frame):
  5.     def __init__(self, *args, **kwargs):
  6.         wx.Frame.__init__(self, *args, **kwargs)
  7.         MyPanel(self)
  8.        
  9. class MyPanel(wx.Panel):
  10.     def __init__(self, *args, **kwargs):
  11.         wx.Panel.__init__(self, *args, **kwargs)
  12.        
  13.         inventario = wx.StaticText(self, -1, u'Bienvenido Inventario: ', pos = (35,10))
  14.         codigo = wx.StaticText(self, -1, 'Codígo: ', pos = (20,30))
  15.         self.codigo_cuadro = wx.TextCtrl(self, -1, '', pos = (20,50))
  16.         producto = wx.StaticText(self, -1, 'Producto: ', pos = (20,80))
  17.         self.producto_cuadro = wx.TextCtrl(self, -1, '', pos = (20,100))
  18.         costo = wx.StaticText(self, -1, 'Costo: ', pos = (20,130))    
  19.         self.costo_cuadro = wx.TextCtrl(self, -1, '', pos = (20,150))
  20.         guardar = wx.Button(self, -1, 'Guardar', pos = (20,180))
  21.         buscar = wx.Button(self, -1, 'Buscar', pos = (20,210))
  22.         salir = wx.Button(self, -1, 'Salir', pos = (20,240))
  23.        
  24.         guardar.Bind(wx.EVT_BUTTON, self.OnGuardar)
  25.         buscar.Bind(wx.EVT_BUTTON, self.OnBuscar)
  26.         salir.Bind(wx.EVT_BUTTON, self.OnSalir)
  27.        
  28.     def OnGuardar(self, evt):
  29.         bd = dbapi.connect("formulario.dat")
  30.         cursor = bd.cursor()
  31.         cursor.execute("""create table if not exists inventario (codigo_cuadro txt, producto_cuadro txt, costo_cuadro txt)""")
  32.         bd.commit()
  33.         cursor.close()
  34.         bd.close()
  35.         ingresodecodigo = self.codigo_cuadro.GetValue()
  36.         dialogo = wx.MessageDialog(self, 'El producto %s, se ha guardado correctamente' % (ingresodecodigo), 'Información', wx.OK | wx.ICON_INFORMATION)
  37.         dialogo.ShowModal()
  38.         self.codigo_cuadro.Clear()
  39.         self.producto_cuadro.Clear()
  40.         self.costo_cuadro.Clear()
  41.         dialogo.Destroy()
  42.        
  43.        
  44.        
  45.     def OnBuscar(self, evt):
  46.         from prueba import MyFrame2
  47.        
  48.        
  49.        
  50.    
  51.     def OnSalir(self, evt):
  52.         self.Parent.Close()
  53.        
  54.        
  55.        
  56.        
  57. class App(wx.App):
  58.     def OnInit(self):
  59.         f = MyFrame(parent = None, title = u'Inventario', size = (200,400), pos = (320,150))
  60.         f.Show()
  61.         return True
  62.  
  63. aplicacion = App(0)
  64. aplicacion.MainLoop()

y prueba.py

la cual se llama o accede desde Frame.py

Código Python:
Ver original
  1. import wx
  2. import sqlite3
  3.  
  4. conn = sqlite3.connect('formulario.dat')
  5. cur = conn.cursor()
  6.  
  7. cur.execute("""SELECT * FROM inventario""")
  8. list = list(cur.fetchall())
  9. index = range(len(list))
  10.  
  11. class App(wx.App):
  12.     def OnInit(self):
  13.         self.ventana = wx.Frame(parent = None, title = u'Resultados.', size = (200,400), pos = (320,150))
  14.         panel = wx.Panel(self.ventana, -1)
  15.         name = wx.StaticText(panel, -1, 'Producto', pos = (20,30))
  16.         self.nombrecaja = wx.TextCtrl(panel, -1, '', pos = (20, 50))
  17.         self.nombrecaja.Bind(wx.EVT_TEXT, self.Buscar)
  18.        
  19.         return True
  20.        
  21.     def Buscar(self, evt):
  22.         self.grid.DeleteAllItems()
  23.        
  24.         cur.execute("""SELECT * FROM inventario""")
  25.         all = cur.fetchall()
  26.         criterio = self.nombrecaja.GetValue()
  27.         if criterio <> '':
  28.             cur.execute("""SELECT * FROM inventario WHERE producto LIKE ('%%%s%%')""" %(criterio))
  29.             items = cur.fetchall()
  30.         else:
  31.             items = []
  32.            
  33.        
  34.        
  35. aplicacion = App()
  36. aplicacion.MainLoop()

la cuestión es que quiero hacer pruebas con bases de datos, en relación a consultas de datos, es decir hacer busquedas en este caso de dicho productos... pero a pesar de ser algo simple se me complica... ya que no he visto otros ejemplos para guiarme... en la guia de sqlite3 se aprecia bien la introducción de datos a la base de datos, pero las consultas con wxpython no se aprecian muy bien....