Ver Mensaje Individual
  #1  
Antiguo 03-09-2003
cacuna cacuna is offline
Miembro
 
Registrado: sep 2003
Posts: 54
Reputación: 21
cacuna Va por buen camino
Question Problema con Suma de Campos TIME en SP

Hola que tal. Tenia mucho que no publicaba un problema en el foro, afortunadamente, pero aqui estoy de nuevo molestando a los Masters de la programacion.

Estoy haciendo un SP en el IBManager 3.0.07. Trabajo con Firebird 1.0.3.972 y la BD con Dialecto 3.
Ma aparece el Error del fondo de este mensaje.
Al parecer es al sumar dos campos de tipo Time, lo curioso es que si en vez de sumarlo lo resto no me marca error.
Alguien que me pueda ayudar?

Gracias de antemano y saludos a todos los foristas.


---------- STATEMENT ----------

CREATE PROCEDURE RECOLECTA (
VFECHA DATE,
VNOEMP INTEGER)
AS
declare variable vPERIODOINICIO date;
declare variable vPERIODOTERMINO date;
declare variable vTIPO CHAR(7);
declare variable vMinEntrada time;
declare variable vMaxEntrada time;
declare variable vGraciaAntesEntrada time;
declare variable vHrEntrada time;
declare variable vHrSalida time;
declare variable vAntesEntrada time;
declare variable vDespuesEntrada time;
declare variable vDespuesSalida time;

BEGIN

/* SELECCIONA PERIODO EN BASE A FECHA*/
SELECT PE_INICIO, PE_TERMINO
FROM CT_PERIODOS
WHERE :vFECHA BETWEEN PE_INICIO AND PE_TERMINO
INTO :vPERIODOINICIO, :vPERIODOTERMINO;

Select CH_TIPO
From AT_CHECADAS
Where (CH_NOEMPLEADO = :VNOEMP) AND
(CH_FECHA BETWEEN :vPERIODOINICIO AND :vPERIODOTERMINO)
Order by CH_FECHA,CH_HORA desc
INTO :vTIPO;


/* VERIFICA SI HAY CHECADAS EN ESE PERIODO*/
if (vTIPO IS null) then
vTIPO = 'ENTRADA';
ELSE
BEGIN
if (VTIPO = 'SALIDA') then
vTIPO = 'ENTRADA';
ELSE
vTIPO = 'SALIDA';
END


/* SELECCIONA EL TURNO DEL EMPLEADO */
Select B.TU_HORAENTRADA,B.TU_HORASALIDA,B.TU_ANTESENTRADA,B.TU_DESPUESENTRADA,B.TU_DESPUESSALIDA,B.TU_GRACI AANTESENTRADA
From AT_EMPLEADOS A,CT_TURNOS B
Where A.EM_TURNO = B.TU_TURNO AND A.EM_NOEMPLEADO =:vNoEmp
INTO :vHrEntrada, :vHrSalida, :vAntesEntrada, :vDespuesEntrada, :vDespuesSalida, :vGraciaAntesEntrada;


/* CREA RANGOS DE HORAS PARA CHECADAS DE E/S */
vMinEntrada = (vHRENTRADA - vANTESENTRADA);
vMaxEntrada = (vHRENTRADA + vDESPUESENTRADA);


/* SUSPEND;*/
END



---------- ERROR MESSAGE ----------

fmCompile.quCompile:
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported.
Responder Con Cita