Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/08/2010, 11:19
Baldur
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Error al crear Stored Procedure

Mirar, creo que he solucionado el problema del ROW_NUMBER() OVER(-------)
Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. CREATE PROCEDURE `galiciaparty`.`spGetAllEventos` (IN startIndex INT, IN pageSize INT, IN sortBy VARCHAR(30), OUT totalEventos INT)
  4. * * DECLARE upperBound INT;
  5. * * SET startIndex *= IF(startIndex *< 1, 1, startIndex);
  6. * * SET pageSize = IF(pageSize < 1, 1, pageSize);
  7. * * SET upperBound = startIndex + pageSize;
  8. * * SET totalEventos=(SELECT Count(*) FROM gp_eventos_prin);
  9.     SET @cnt = 0;
  10. * * SET @sqlStatement =CONCAT('SELECT E.id_evento, E.titulo, E.fecha_evento, E.lugar
  11. * * * * * * * * * * * *        FROM (SELECT id_evento, @cnt := (@cnt + 1) AS row_number
  12.                                     FROM gp_eventos_prin
  13.                                     ORDER BY ',sortBy,')) AS E *
  14.                               WHERE *rowNumber >= ', startIndex,' AND rowNumber < *', upperBound,')'
  15. * exec (sqlStatement);
  16. END$$
  17.  
  18. DELIMITER ;

La solución la "He obtenido" de esta web: http://www.thingy-ma-jig.co.uk/blog/...alphabetically

Pero el MySQL WorkBench me sigue diciendo que hay "algún error" y dice:
SQL Syntax Error near: 'DECLARE upperBound INT;
* * SET startIndex *= IF(startIndex *< 1, 1, start'

Y marca como un cuadradito rojo en la línea del DECLARE.

Ahora sí que ya no sé que hacer...

Alguna idea??

Gracias por todo y un Saludo!
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas