Registro a registro MySQL

Manuel Enrique González Ramírez maengora en gmail.com
Vie Nov 9 03:33:49 CET 2007


Hola a todos.

Nuevamente con inquietudes.

Sigo aprendiendo con una pequena aplicacion que quier armar y ahora se me
presenta el siguiente inconveniente:
1. ANTECEDENTES Y DATOS:
- Tengo un form con varios campos (txt_id, txt_codigo, txt_fecha,
cmb_tipomovimiento)
- Igualmente una base de datos con una tabla llamada control y que posee los
campos:  id (autonumerico), codigo, fecha y tipomovimiento
- La tabla control la he llenado desde el form con 3 registros donde id
(1,2,3), codigo para los tres registros(2212) y los demas datos son
diferentes.

2. ACCIONES
- En el form he creado dos botones denominados bt_adelante  y bt_atras que
al pulsarlos deben con el resultado de una consulta MySQL
leer el id y si es del caso ir a adelante o atras.  Ejemplo:
Si el id = 1 y pulso el boton bt_adelante, debe ir a id=2 y mostrar los
datos asociados a dicho id y viceversa.

Hasta ahi todo muy bien.

3. DIFICULTAD/PROBLEMA
- Si yo elimino por ejemplo el registro del id=2 y vuelvo a hacer clic en
alguno de los botones ya no avanza ya que no hay un consecutivo para mostrar
los id.
Ejm:  Si estoy en el id=1 y hago clic en el bt_siguiente NO ENCUENTRA el
id=2 de igual forma NO HACE NADA, no avanza al id=3 que si existe.  Lo mismo
me sucede si estoy en id=3 y voy hacia atras; no muestra el id=1, ya que
busca el id=2.

- Inserto otro registro desde el form pero este me queda con id=4 y pues si
estoy ubicado en id=3 y doy hacia adelante, muestra en nuevo registro y
viceversa, pero al estar en el 3 y querer devolverme ya no me da.

4. SOLICITUD
Necesito hacer, no se algun bucle o algo que me liste los codigos con sus id
(en un segundo plano por ejemplo) y que al pulsar los botones pueda ir de
registro en registro indendiente del id pero que sean del mismo codio.

....Eso, algo parecido a lo que tiene access los famosos FILTROS que te
listan por ejemplo varios productos de la misma familia pero con id
diferentes pero que al hacer clic en el boton next y previous te van
mostrando los registros.

Les aclaro, apenas estoy aprendiendo, estoy muy entusiasmado con esto de
python y visualwx, pero me entusiasma mas la idea de consultar en esta lista
y saber que uno, varios o muchos estan dispuestos a colaborar.   De antemano
muchas gracias.

Les dejo el fragmento de codigo del boton evento atras, del boton bt_atras.

def atras(self,event): #init function
        #[253]Code event VwX...
        if(not self.VwXEvOnButtonClickAll(event)):return;
        #Don't modify[253]#
        #add your code here
        codigo = self.txt_codigo.GetValue()
        id = self.txt_id.GetValue()

        busca = cursor.execute('SELECT COUNT(codigo) FROM control where
codigo=%s',(codigo))
        res = cursor.fetchone()

        id = int(id) - 1


        #print id

        busca2 = cursor.execute('SELECT * FROM control where codigo=%s and
id=%s',(codigo,id))
        res2 = cursor.fetchall()

        for i in res2:
            self.txt_id.SetLabel(str(i[0]))
            self.cmb_clasemov.SetLabel(str(i[3]))
            self.cmb_origen.SetLabel(str(i[4]))
            self.cmb_destino.SetLabel(str(i[5]))

            self.cmb_detalle.SetLabel(str(i[6]))
            self.cmb_articulo.SetLabel(str(i[7]))
            self.txt_cantidad.SetLabel(str(i[8]))
        return #end function
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es