Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2012, 12:14
Avatar de Prais
Prais
 
Fecha de Ingreso: octubre-2010
Mensajes: 114
Antigüedad: 14 años, 1 mes
Puntos: 6
Exclamación Problema con Parametros de Salida en Stored Procedure

Hola foreros: que tal, trato de solucionar este problema y no me funca, a ver si me pueden ayudar, en resumen No puedo traer 2 parametros de salida arroja el siguiente error:
Código HTML:
Ver original
  1. #1414 - OUT or INOUT argument 2 for routine base_de_datos.ObtenTiempo is not a variable or NEW pseudo-variable in BEFORE trigger

El procedimiento almacenado es el siguiente:
Código MySQL:
Ver original
  1. DELIMITER //
  2. CREATE PROCEDURE ObtenTiempo(IN pid int, OUT DiferenciaTiempo time,OUT EstadoRemate tinyint(1))
  3.     declare DiferenciaT time;
  4.     declare EstadoObtenido tinyint(1);
  5.     declare Ahora datetime;
  6.  
  7.     SET EstadoObtenido=-1;
  8.     SET EstadoRemate=-1;
  9.     SET DiferenciaTiempo='00:00:00';
  10.  
  11.     SELECT estado INTO EstadoObtenido FROM productos WHERE id=pid;--este select me entrega el estado del articulo
  12.  
  13.  --si el estado es 2, entonces debo sacar la diferencia de fechas y devolverla como parametro
  14.  IF (EstadoObtenido=2) THEN
  15.    BEGIN
  16.         SET Ahora=NOW();
  17.     SELECT DiferenciaT=TIMEDIFF(fecha_termino_inicial,Ahora) FROM productos WHERE id=pid AND estado=2 AND estado_producto=0;
  18.  
  19.         IF (DiferenciaT > 0) THEN
  20.           BEGIN
  21.                 SET EstadoRemate=2;
  22.                 SET DiferenciaTiempo=DiferenciaT;
  23.           END;
  24.         ELSE
  25.           BEGIN
  26.                UPDATE articulo SET estado=3, estado_producto=1, fecha_termino_real=Ahora WHERE id=pid;
  27.           END;
  28.         END IF;
  29.    END;
  30.  END IF;
  31.  END; //

y lo estoy llamando de esta forma
Código MySQL:
Ver original
  1. call ObtenTiempo('20','@DiferenciaTiempo','@EstadoRemate')

Alguna sugerencia ?