Buenas Tardes Amigos del foro. quería ver si me pueden ayudar en un Problema que tengo con el uso del Signal. Tengo un store procedure al cual le paso como parámetro los datos de un documento este procedure levanta un cursor con el detalle de dicho documento y va actualizando los stocks de los productos pero en el caso que alguno de los productos del documento no tenga stock estoy utilizando el signal para cortar el proceso y que me devuelva un mensaje de error indicándome cual es el producto que no tiene saldo. El Procedure funciona es decir que cuando no encuentra saldo se corta el proceso pero no me devuelve el mensaje de Error. les muestro parte del código para que me den una mano.
Código MySQL:
Ver originalDECLARE specialty CONDITION FOR SQLSTATE
'45000'; SET @d
=concat('insert into ActStock select ''',cia
,''',id_almacen,tipo,serie,numero,id_Articulo,cantidad from ',TAB
,' where tipo=''',TIP
,''' and serie=''',SERI
,''' and numero=''',NUM
,''''); EXECUTE stmt2;
OPEN items;
FETCH items
INTO alm
,cod
,cant
; SET @d
=CONCAT('SELECT @s:=STOCK FROM TB_STOCK',CIA
,' WHERE ID_AGENCIA=''',AGE
,''' AND ID_ALMACEN=''',ALM
,''' AND ID_PRODUCTO=''',COD
,''''); EXECUTE stmt2;
SIGNAL specialty
SET MESSAGE_TEXT
= 'Producto sin stock'; SET @d
=CONCAT('INSERT INTO TB_STOCK',CIA
,' values(''',AGE
,''',''',alm
,''',''',cod
,''',''',if(OPE
='+',cant
,cant
* -1),''',''0'') on duplicate key update stock=stock ',OPE
,' ',cant
); EXECUTE stmt2;
CLOSE items;
De antemano muchas gracias. cualquier ayuda me servira.