Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
el problema puede venir de que no tienes inicializada la variable de salida del procedimiento, por lo que si el valor es NULL, todo lo que concatenes automáticamente sera NULL

De esta forma a mi me funciona, solo he añadido la linea en rojo:

Código SQL [-]
CREATE PROCEDURE `usuarios`(OUT mails varchar(400))
BEGIN
  DECLARE no_more_records INTEGER DEFAULT 0;
  DECLARE v_email VARCHAR(100) DEFAULT "";

  DECLARE cur_EventRanks CURSOR FOR
  SELECT mail FROM usuario;

  DECLARE CONTINUE HANDLER 
      FOR NOT FOUND SET no_more_records=1;

  SET mails=''; -- inicializar la variable de salida
  SET no_more_records = 0;

  OPEN cur_EventRanks;

  cur_Loop:
   LOOP
      FETCH cur_EventRanks   INTO v_email;

      IF no_more_records = 1
      THEN
         LEAVE cur_Loop;
      END IF;

      SET mails = CONCAT(v_email, ";", mails);
   END LOOP cur_Loop;

  CLOSE cur_EventRanks;
END
Responder Con Cita
  #2  
Antiguo 16-07-2019
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Store Procedure no trae datos

Gracias, se fue el stress... me funciono como me habias indicado pero tambien agregando la linea select mails. Mil Gracias.
Cita:

CREATE PROCEDURE `usuarios`(OUT mails varchar(400))
BEGIN
DECLARE no_more_records INTEGER DEFAULT 0;
DECLARE v_email VARCHAR(100) DEFAULT "";

DECLARE cur_EventRanks CURSOR FOR
SELECT mail FROM usuario;

DECLARE CONTINUE HANDLER
FOR NOT FOUND SET no_more_records=1;

SET mails=''; -- inicializar la variable de salida
SET no_more_records = 0;

OPEN cur_EventRanks;

cur_Loop:
LOOP
FETCH cur_EventRanks INTO v_email;

IF no_more_records = 1
THEN
LEAVE cur_Loop;
END IF;

SET mails = CONCAT(v_email, ";", mails);
END LOOP cur_Loop;
select mails
CLOSE cur_EventRanks;
END



Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Stored Procedure gluglu Conexión con bases de datos 16 24-02-2011 17:41:24
Stored Procedure !!! Ledian_Fdez C++ Builder 0 02-03-2010 14:01:29
Stored Procedure StartKill MySQL 2 27-08-2008 06:18:44
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22
Stored Procedure tgsistemas SQL 1 27-02-2004 13:10:33


La franja horaria es GMT +2. Ahora son las 08:21:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi