Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/11/2010, 08:51
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: retornar un valor desde un procedure

Todo es posible... La pregunta que surge es: ¿Sobre qué lenguaje de programación estás trabajando?

Pregunto esto porque un SP parametrizado devuelve el valor en el parámetro, pero para poder recuperarlo en la aplicación el lenguaje debe poder recuperar el parámetro y leer su valor.
Este tipo de cosas son muy sencillas de hacer en .Net, pero no son tan fáciles usando mysql_query(), de PHP, por ejemplo.
Fuera de eso el SP mejor programado quedaría:

Código MySQL:
Ver original
  1. CREATE PROCEDURE `PA_Arribos`(
  2.     IN xop INT,
  3.     IN xidEmpTransport INT,
  4.     IN xDireccion VARCHAR(150),
  5.     IN xnumVuelo INT,
  6.     IN xfechaLlegada DATE,
  7.     IN xHoraLlegada TIME,
  8.     IN xnumPersonas INT,
  9.     OUT xidArribo INT)
  10.     SET xidArribo = 0;
  11.     IF  xop = 1 THEN
  12.         INSERT INTO arribos(idArribos, idEmpTransporte,Direccion,NumVuelo, FechaLlegada, HoraLlegada, NumPersonas)
  13.         VALUES(xidArribo, xidEmpTransport,xDireccion,xnumVuelo,xfechaLlegada, xHoraLlegada, xnumPersonas);
  14.         SET xidArribo = LAST_ISERT_ID();
  15.     END IF;
Hay algunos tips:
1) No se deben declarar variables con el mismo nombre de las variables del prototipo.
2) CASE sin un ELSE puede darte un error si la variable toma un valor no contemplado en los WHEN.
3) Si sólo vas a tomar una opción, usar un CASE carece de sentido.
4) Si lo que quieres recuperar es un valor autogenerado, para eso existen funciones específicas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)