Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/06/2011, 06:45
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Procedimiento Almacenado MySQL con cursor

Si has empezado algo, postea lo que tienes. Orientarte desde un código ya bocetado muchas veces ayuda a indicar los errores principales.
Tips básicos:
1) Necesitas un HANDLER para el SQLSTATE '02000' para que MySQL determine el cierre de la lectura cuando llegue al último registro. Si no lo usas se generará un error cuando el cursor intente avanzar más allá de eso.
2) Necesitarás una variable que uses de flag para indicar que salga de la lectura. Se usa en combinación con el HANDLER, haciendo que este cambie el estado del flag.
3) Todas las variables locales se declaran todas al principio. No se puede declarar variables luego de declarar el HANDLER, ni siquiera cursores.
4) No puedes actualizar la(s) tabla(s) que lee el cursor, porque al momento de recorrerla(s) tiene(n) un bloqueo de lectura/escritura, producto del trazado del cursor. Obviamente el proceso tiene que ser planeado de modo que eso no impida el UPDATE que quieres hacer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)