![]() |
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. |
Hola, estas haciendo la misma aplicación que yo, y tropesaste con el mismo problema, yo estoy utilizando interbase 6
y no podia sumar campos de tipo time lo que sucede es que el valor varia entre 0:00:00 y 23:59:59999 lo que yo hize es por ejemplo es: tolerancia=extract(hour from hora)*3600+extract(minute from hora)*60+extract(second from hora) if (:horaactual < :hora_ingreso+toleranca) then ........ recién me complilaba y trabaja bien, le puedes sumar una varialbe entera que contenga los segundos a adicionar, espero te sirva. Bismarito |
La franja horaria es GMT +2. Ahora son las 04:49:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi