Hola a todos.
Estoy desarrollando un Sistema de Hotel.
Como base de datos estoy utilizando el MySql con Procedimientos Alamcenados y muchos con de ellos Sentencias Preparadas.
El Problema es que los Procedimientos Alm. con Sentencias Preparadas no ejecutan y los Procedimientos Alm. normales sí.
Tengo que eliminarlos y crearlos de nuevo para poder trabajar el Sistema. Lo curioso es que de manera local trabajan al 100%,
los subos al servidor y funcionan bien; pero al dia siguiente muchos de ellos no ejecutan y son los Procedimientos con Sentencias Preparadas.
Este es uno de los Procedimiento almacenado con Sentencias Preparadas que manejo.
Código MySQL:
Ver original
SET @sentenciaHouse
= ''; SET @sentenciaOrder
= ''; SET @sentenciaFinal
= ''; SET @sentenciaLimit
= ''; SET @sentenciaGroup
= '';
SELECT
habitacion.hab_nro,
habitacion.hes_id,
habitacion.hab_eliminado,
habitacion.hke_id,
habitacion.hab_id,
habitacion_tipo_habitacion.hth_id,
tipo_habitacion.tha_descripcion,
house_keeping.hke_descripcion,
house_keeping.hke_icono,
habitacion_estado.hes_descripcion,
habitacion_estado.hes_color,
habitacion_tipo_habitacion.tha_id,
habitacion_tipo_habitacion.estado,
reservas.res_id,
reservas.res_estado
FROM
habitacion
LEFT OUTER JOIN habitacion_tipo_habitacion ON habitacion.hab_id = habitacion_tipo_habitacion.hab_id
LEFT OUTER JOIN tipo_habitacion ON habitacion_tipo_habitacion.tha_id = tipo_habitacion.tha_id
LEFT OUTER JOIN house_keeping ON habitacion.hke_id = house_keeping.hke_id
LEFT OUTER JOIN habitacion_estado ON habitacion.hes_id = habitacion_estado.hes_id
LEFT OUTER JOIN reservas ON habitacion_tipo_habitacion.hth_id = reservas.hth_id
WHERE habitacion.hab_eliminado = 0 ');
SET @sentenciaOrder
= CONCAT(' ORDER BY ',p_campo_orden
,' ',p_tipo_orden
); SET @sentenciaGroup
= CONCAT(' GROUP BY habitacion.hab_nro');
SET @sentenciaHouse
= CONCAT(' AND habitacion.hke_id=',p_hke_id
);
SET @sentenciaETH
= CONCAT(' AND habitacion_tipo_habitacion.tha_id = ',p_tha_id
);
SET @sentenciaETH2
= CONCAT(' AND habitacion.hes_id = ',p_hes_id
);
SET @sentenciaLimit
= CONCAT(' LIMIT ',p_offset
,',',p_limit
);
SET @sentenciaFinal
= CONCAT(@sentencia
,@sentenciaETH
,@sentenciaETH2
,@sentenciaHouse
,@sentenciaGroup
,@sentenciaOrder
,@sentenciaLimit
); PREPARE consulta
FROM @sentenciaFinal
; EXECUTE consulta;
DEALLOCATE PREPARE consulta;
Agradeceria su ayuda para solucionar este problema.