Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: Hadess_inf en 22 Abril 2010, 14:54 PM

Título: Ayuda con procedimiento. Simular array en text
Publicado por: Hadess_inf en 22 Abril 2010, 14:54 PM
Pues tengo este procedimiento:

Código (sql) [Seleccionar]
create procedure ee(ingreso text)
begin
declare tamanio tinyint;
declare comas tinyint;
declare elemento text;
set tamanio = length(ingreso);
set comas = instr(ingreso,',');
while comas > 0 do
set elemento = substring(ingreso,1,comas-1);
set ingreso = substring(ingreso,comas+1);
select elemento;
set comas = instr(ingreso,',');
end while;
end //


Aqui esta en ejecucion:

Código (sql) [Seleccionar]
call ee('e,a,d,g');//
+----------+
| elemento |
+----------+
| e        |
+----------+
1 row in set (0.00 sec)

+----------+
| elemento |
+----------+
| a        |
+----------+
1 row in set (0.00 sec)

+----------+
| elemento |
+----------+
| d        |
+----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)


No muestra el ultimo caracter g.

Alquien me ayuda a solucionar el problema.
Gracias.

PD: La idea es mandar un string que representara a un array (cada elemento esta separado por una coma) .... el procedure debe separar cada elemento.
Título: Re: Ayuda con procedimiento. Simular array en text
Publicado por: ^Tifa^ en 22 Abril 2010, 21:50 PM
No he podido ejecutar tu procedimiento (el trabajo me tiene a tope).

Pero mirandolo...sino me equivoco.. tu duda esta en esta indicacion:

SET comas = instr(ingreso,',');

Fijate que esta leyendo hasta donde vea una coma (,) y aca tu:

call ee('e,a,d,g');//

Donde termina la coma??? en la letra d  ahora.. intenta despues de la letra g colocar una coma(,) que quede asi:

call ee('e,a,d,g,');//

Y dime si funciona... no lo he probado, pero es lo unico que visualmente se me aclara un poco  :rolleyes: