Ver Mensaje Individual
  #7 (permalink)  
Antiguo 13/11/2008, 16:25
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: 17 años, 4 meses
Puntos: 2658
Respuesta: Ayuda con consulta

Cita:
Iniciado por sand1229 Ver Mensaje
Disculpen que sea tan molesta pero quisiera saber como seria el procedimiento que publico davhira pero en mysql.

gracias.
Sería exactamente como lo describo arriba. El modelo descrito es de MySQL.
El problema central es que no es práctico (ni en MySQL ni en otro DBMS) manejar esa parametrización en un SP.
Por caso, te posteo aquí un caso de SP con parámetros y resolución de valores según el caso:
Código sql:
Ver original
  1. CREATE PROCEDURE `VALIDARVIAJES`(
  2.    IN VPATENTE CHAR(12),
  3.    IN VFECHAINI DATE,
  4.    IN VHORAINI TIME,
  5.    OUT VIDVIAJE INT)
  6. BEGIN
  7.    DECLARE BUSCADO INT DEFAULT 0;
  8.    DECLARE ESTADO INT DEFAULT 0;
  9.    DECLARE VFINI DATE;
  10.    DECLARE VHINI TIME;
  11.    -- Buscar si hay alguno con los datos completos
  12.    SELECT IDVIAJE, VIAJECOMPLETO, FECHAINICIO, HORAINICIO
  13.    FROM VIAJE
  14.    WHERE PATENTE=VPATENTE
  15.      AND FECHAINICIO=VFECHAINI
  16.      AND HORAINICIO=VHORAINI
  17.    INTO BUSCADO, ESTADO, VFINI, VHINI;
  18.    IF BUSCADO IS NULL THEN
  19.      CASE
  20.        WHEN ESTADO=1 THEN
  21.          SELECT * FROM VIAJE WHERE IDVIAJE = BUSCADO;
  22.        WHEN ESTADO=2 THEN
  23.          DELETE FROM VIAJE WHERE IDVIAJE = BUSCADO;
  24.        WHEN ESTADO=3 THEN
  25.          UPDATE VIAJE SET VIALECOMPLETO=1 WHERE IDVIAJE = BUSCADO;
  26.        WHEN ESTADO=4 THEN
  27.          SET VIDVIAJE=-1;
  28.        ELSE
  29.          SET VIDVIAJE=0;
  30.      END CASE;
  31.    ELSE
  32.      SET VIDVIAJE=0;
  33.    END IF;
  34.  END

Algo así sería en teoría generar un case par aun SP parametrizado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)