List:Spanish« Previous MessageNext Message »
From:Calabaza Date:October 7 2009 5:50pm
Subject:Re: necesito ayuda
View as plain text  
El día 7 de octubre de 2009 12:15, darkx hardy <sdarknot@stripped>
escribió:

> Hola a todos bueno
> aca les adjunto todo el script
> para que tengan una idea del
> resultado que me aparece



El procedimiento queda así:


DELIMITER $$

-- ------------------------------------------------------------------------

DROP FUNCTION IF EXISTS `call_center`.`fn_purchased` $$
/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */ $$
CREATE DEFINER=`root`@`localhost` FUNCTION `fn_purchased`(id int)
RETURNS varchar(300) CHARSET utf8
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE VRETURN varchar(30) ;
DECLARE us varchar(30);
DECLARE users varchar(300) default '';
DECLARE UAM CURSOR FOR select d.destino from deal_destinos dd
inner join destinos d on d.iddestino=dd.iddestino
where dd.iddeal=id ;
DECLARE CONTINUE HANDLER FOR not found SET done = 1;
OPEN UAM;
REPEAT
FETCH UAM INTO us;

 IF NOT done THEN

 set VRETURN=us;
  if(users='') then set users=VRETURN;
   else set users=concat(users,' - ',VRETURN);
  end if;

end if;
UNTIL done END REPEAT;
CLOSE UAM;
RETURN users;
END $$
/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */  $$

-- --------------------------------------------------------------------------

DELIMITER ;


> no entiendo por que ?

Como puedes ver, lo único que agregué fue un
IF NOT done THEN (...) end if;


El problema esta en que estas usando la estructura
REPEAT que recién hace la evaluación de la variable done
al FINAL.

Y deberías usar la estructura WHILE [0]
[0]http://dev.mysql.com/doc/refman/5.0/es/while-statement.html

Que evalúa la condición al COMIENZO y así evitar que se
ejecute una vez más.

Un abrazo,

-- 
§~^Calabaza^~§ from Villa Elisa, Paraguay
http://calablogbaza.blogspot.com/

http://es.wikipedia.org/wiki/Top-posting
http://es.wikipedia.org/wiki/Netiquette
Thread
necesito ayudaCOMPINA Gabriel7 Oct
  • necesito ayudadarkx hardy7 Oct
    • Re: necesito ayudaCalabaza7 Oct
  • Re: necesito ayudaJose B7 Oct
Re: necesito ayudaCalabaza7 Oct
Re: necesito ayudaCalabaza7 Oct
  • Error MySQLBinLog con Log de esclavoAna Carmona28 Oct
    • Re: Error MySQLBinLog con Log de esclavoewen fortune28 Oct
      • Re: Error MySQLBinLog con Log de esclavoAna Carmona29 Oct