Registro a registro MySQL

Manuel Enrique González Ramírez maengora en gmail.com
Sab Nov 10 05:32:33 CET 2007


Hola Javi,

Agradezco tu colaboracion.

Y lo dicho, cada vez que me responden dando la solucion a lo que no hallo es
inevitable sonrojarme de la pena al saber que la solucion era mas sencilla
de lo que me imaginaba.

Seguramente debo dejar de programar despues de las 22:00.

Javi, te lo agradezco enormemente y espero que la lista me perdone esta y
muchas mas.

Lo mejor y lo que me hace mas feliz es que estoy aprendiendo!!!


Gracias a to2, especialmente a vos Javi.


El día 9/11/07, Javi <javi en bertayjavi.com> escribió:
>
> Hola,  el problema que yo veo es que modificas el valor de la variable id
> cuando ese valor no debes tocarlo para nada porque sino pierdes la
> integridad referencial, esa variable debe de ser digamos de solo lectura
> para que nos aseguremos de que siempre habra un registro con esa id. Yo lo
> que haria, de hecho es como lo hago, seria una funcion  donde le paso si
> quiero avanzar uno , retroceder uno o volver a leer el mismo
> registro,  para
> hacer eso simplemente juega con la sentecia sql que envias. ej.
> para retroceder:
> SELECT * FROM tabla WHERE id<Variable_id ORDER BY id DESC LIMIT 1
> de esta manera obtendras el registro y solo uno inmediatamente anterior al
>
> id. despues compruebas si has recibido algo y si no es que id era el
> primer
> registro
> para avanzar:
> SELECT * FROM tabla WHERE id>Variable_id ORDER BY id ASC LIMIT 1
> para recargar el registro
> SELECT * FROM tabla WHERE id=Variable_id  LIMIT 1
>
> el  LIMIT 1 es importante para no saturar la red con datos imnecesarios
> puesto que tu solo necesitas un registro
> Otra observacion evita en la medida de lo posible usar el * para definir
> la
> lista de campos, siempre es mejor escribir tu la lista de campos que
> quieres
> y en el orden que los quieres
>
>
> ----- Original Message -----
> From: "Manuel Enrique González Ramírez" <maengora en gmail.com>
> To: "La lista de python en castellano" < python-es en aditel.org>
> Sent: Friday, November 09, 2007 3:33 AM
> Subject: [Python-es] Registro a registro MySQL
>
>
> > 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
> >
>
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
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