Ver Mensaje Individual
  #1  
Antiguo 29-12-2003
gario gario is offline
Miembro
 
Registrado: oct 2003
Ubicación: Gijon
Posts: 34
Reputación: 0
gario Va por buen camino
Unhappy Ayuda con un procedimiento

Hola a todos:
Estoy tratando de crear un procedimiento que me si un rango horario esta libre inserta una cita en dicho horario y si no genera un evento.... el caso es que no soy capaz de que me lo acepte la base de datos.... llevo toda la tarde haciendo pruebas y nada...
alguien me puede decir que hago mal?? trabajo con intebase y el ibconsole.


CREATE PROCEDURE Insertar_Cita ( ID_CLIENTE INTEGER, ID_USUARIO INTEGER,
ID_TRATAMIENTO INTEGER, FECHA DATE, INICIO TIME,
FIN TIME, AVISAR VARCHAR(2), ESTADO VARCHAR(2),
CICLICO VARCHAR(2), OBSERVACIONES VARCHAR(3000),
NOMBRE VARCHAR(50), TELEFONO VARCHAR(15),
SECUNDARIA VARCHAR(3), COSTE NUMERIC(10, 2),
COBRADA VARCHAR(3), PRIMERA_CITA VARCHAR(3),
PREV_ADELANTAMIENTO VARCHAR(10), DUO VARCHAR(3),
TRATAMIENTO VARCHAR(30) )
RETURNS (idcita INTEGER )

AS

DECLARE VARIABLE cita integer;
DECLARE VARIABLE conflicto integer;

BEGIN

SELECT COUNT(*)
FROM CITA
WHERE fecha=:fecha AND id_usuario=:id_usuario AND secunduaria=:secundaria
AND (
:inicio<fin AND fin<=:fin AND :inicio<=inicio AND inicio<:fin
AND (
( inicio<=:inicio AND :inicio<fin AND inicio<:fin AND :fin<=fin )
OR ( :inicio<=inicio AND inicio<:fin AND :inicio<fin AND fin<=:fin )
)
)
INTO :conflicto;

IF (:conflicto=0) THEN
BEGIN
:cita=GEN_ID(NUEVA_CITA,1);
INSERT INTO CITA (ID_CITA,ID_CLIENTE,ID_USUARIO,ID_TRATAMIENTO,FECHA,
INICIO, FIN, AVISAR,ESTADO,CICLICO,OBSERVACIONES,NOMBRE,
TELEFONO,SECUNDARIA,COSTE,COBRADA,PRIMERA_CITA,PREV_ADELANTAMIENTO
DUO,TRATAMIENTO)
VALUES
(:cita,:ID_CLIENTE,:ID_USUARIO,:ID_TRATAMIENTO,:FECHA,
:INICIO, :FIN, :AVISAR,:ESTADO,:CICLICO,:OBSERVACIONES,:NOMBRE,
:TELEFONO,:SECUNDARIA,:COSTE,:COBRADA,:PRIMERA_CITA,:PREV_ADELANTAMIENTO
UO,:TRATAMIENTO);
:idcita=:cita;
SUSPEND;
END;
ELSE POST_EVENT "falloInsercion";

END;




gracias a tod@s
__________________

Un trozo de chocolate te da la energia necesaria para ir a por otro trozo de chocolate (by ELENA)
Responder Con Cita