Publicado: Vie Ago 22, 2008 6:58 pmAsunto: MySQL - como devover mensaje de error en un Store Proc???
Una duda que me acaba de saltar experimentando...
Interbase y Firebird tienen los RAISE_EXCEPTION para detener el procdimiento y lanzar un mensaje en caso de que una condicion se cumpla o no...
como puedo regresar un mensaje segun alguna condicion complida en un procedimiento almacenado de MySQL??? o funcion???
se me ocurre usar una variable vharchar como parametro de salida (IN..., OUT mivariable VARCHAR())... y segun se cumpla una condicion asignarle:
"Ya existe el registro"
"Transaccion exitosa"
o algo que le de alguna idea al usuario de que paso, esto para usarlo en PHP y cualquier otro lenguage.
pero como la regreso???
mientras voa indagar en la documentacion de MySQL...
pero si algien me da un poco de luz, le agradeceria mucho.
Sales pues _________________ Blaise Pascal: "Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa."
ya que esta la tabla creada vamos por el procedimiento almacenado
Código:
create procedure insertar_usuarios (in addusuario varchar(15), in addpassword varchar(15))
begin
declare existe int;
select count(usuario) into existe from usuarios where usuario=addusuario;
if existe then
select 'el usuario ya existe' as mensaje;
else
insert into usuarios(usuario,password) values(addusuario,addpassword);
select 'los datos se insertaron correctamente' as mensaje;
end if;
end
ya tenemos nuestro procedimiento y ahora hay que mandarlo llamar para poner en practica el ejemplo;
Código:
call insertar_usuarios('otrebor','debian');
este lo llamaremos 2 veces
en la primera vez insertara los datos y mostrara un mensaje de que los datos han sido insertados, ese mensaje sera regresado en un campo o columna llamada mensaje
la segunda que se mande llamar al procedimiento debera regresar error porque el usuario ya existe en nuestra tabla.
aqui unas capturas con el ejemplo trabajando
1.insertar los datos
2.tratar de insertar de nuevo pero mostrara error
3. hacer un select a la tabla para ver que realmente se ha insertado 1 y no 2 veces
PD: te pondria el ejemplo ya con php, pero me imagino que ya sabes como usarlo
saludos!! _________________ Debian Etch->Lenny
Ubuntu Edgy->Feisty->Gutsy
Melodic Death Metal
Publicado: Mie Oct 15, 2008 7:11 pmAsunto: Re: MySQL - como devover mensaje de error en un Store Proc??
Gracias
pense que era mas dificil, usando returns o algo asi....
Lo de PHP no lo he intentado, pero he visto en la documentacion de MySQL, que para obtener el mesaje (valor de retorno) se usa la arroba y el nombre de la variable... algo como
select @mensaje
entonces quiero suponer que debo lanzar la consulta en php de esa forma y asignarle el resultado de la consulta a una variable para mustrarla...
algo como
consulta=mysql_query("select @mensaje",$conexion);
$err = consulta[0];
print "$err";
En estos dias lo intento.
Gracias
Sales pues _________________ Blaise Pascal: "Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa."
No puedes publicar nuevos temas en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en encuestas en este foro