Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Cursores

Estas en el tema de Cursores en el foro de Mysql en Foros del Web. Hola que tal, hace poco empezo con los cursores en mysql, y pues todo funciona perfectamente, lo unico que no entiendo es una linea, me ...
  #1 (permalink)  
Antiguo 26/03/2010, 13:13
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Cursores

Hola que tal, hace poco empezo con los cursores en mysql, y pues todo funciona perfectamente, lo unico que no entiendo es una linea, me la podrian explicar porfavor.

La que deje en negrita


DELIMITER //
DROP TRIGGER IF EXISTS devolucion_avanzada//
CREATE TRIGGER devolucion_avanzada AFTER DELETE ON clientes
FOR EACH ROW BEGIN

DECLARE facturas INT ( 5 );
DECLARE productoo char( 5 );
DECLARE cantidadd int( 4 );
DECLARE idone INT DEFAULT 0;

DECLARE facturas_cur CURSOR FOR SELECT f.consecutivo, df.producto, df.cantidad FROM factura f,detallefactura df WHERE f.consecutivo = df.consecutivo AND f.cliente = OLD.cedula;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET idone = 1;

OPEN facturas_cur;
REPEAT
FETCH facturas_cur INTO facturas, productoo, cantidadd;

IF NOT idone THEN UPDATE productos SET cantidad = cantidad + cantidadd where codigo = productoo;
DELETE FROM factura WHERE consecutivo = facturas;
DELETE FROM detallefactura WHERE consecutivo = facturas;

END IF;
UNTIL idone END REPEAT;
CLOSE facturas_cur;

END;//

-- 92227452

SELECT f.consecutivo, CONCAT ( df.producto , " - ", df.cantidad) "Cliente
", CONCAT( p.codigo, " - ", p.cantidad ) FROM factura f,detallefactura df, produ
ctos p WHERE f.consecutivo = df.consecutivo AND df.producto = p.codigo AND f.cli
ente =
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #2 (permalink)  
Antiguo 26/03/2010, 17:21
Avatar de 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: Cursores

Es un manejador (HANDLER) de eventos que se usa para definir qué es lo que hará el sistema ante una situación que habitualmente generaría un error o un estado inseguro de un proceso.
Puntualmente, lo que hace este es definir que hace con una variable usada como flag, y que permitirá realizar una salida de un loop ante una consulta que devuelve NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:45.