
25/05/2010, 20:37
|
 | | | Fecha de Ingreso: marzo-2008 Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 11 meses Puntos: 15 | |
Respuesta: ayudenme a solucionar este problema - Segun como lo veo, tu consulta debe listas la lista de elementos con ID = ?, entre las fechas X y Y.
- Segun lo que dice MySQL se debe a la cantidad de anidaciones.(Demasiadas anidaciones-supera lo soportado por MySQl).
La idea de un procedimiento almacenado no creo que sea esta, desde el punto de analisis deberia ser un poco mas organizado...ya que cuando haya que depurar un error de datos logicos, o calculados, sera un verdadero dolor de cabeza(No se cuenta con paso a paso a menos que utilizemos embarcaderoDB u otros.).
RECOMENDACION: Te ayudaria a dar un poco de organizacion, y muy probablemente solucione el problema las siguientes recomendaciones:
1. Crear funciones y vistas.
2. Crear SP's que se invoquen desde el principal.
3. Crear mensajes y validacion de errores entre la invocaciones de cada SP Auxiliar.
4. Establecer busquedas a nivel de indices.
5. utilizar tablas temporales.
6. Utiliza estructuras.
7. RECOMENDACION: Evita en lo posible utilizar cursores.
DELIMITER $$
CREATE PROCEDURE XXX(...)
BEGIN
...
SELECT CASE ... WHEN ... THEN
WHEN ... THEN '...' ELSE '...' END;
Call sp_Auxiliar1(...);
Call sp_Auxiliar2(...);
Call sp_Auxiliar3(...);
END
DELIMITER $$
Un saludo, |