[firebase-br] Stored Procedure com Erro
Fortes Marcelo
marcelosoftware em yahoo.com.br
Qua Jul 20 21:48:12 -03 2005
Olá Amigos !
Tenho uma Stored Procedure que não está funcionando.
Tenho uma tabela onde eu cadastro o agendamento de determinado material para determinada hora e sala porém alguns materiais são únicos e eu gostaria de prevenir que o mesmo material fosse agendado para uma sala diferente dentro de um horário de outro agendamento já previamente cadastrado por outro usuário ou seja não poder agendar algo que já está agendado. Por exemplo se eu tiver um material digamos DataShow e se alguém agendou o DataShow para sala 101 das 13:00 às 15:00 eu gostaria que não fosse agendado por outro neste mesmo intervalo de horas pro mesmo dia. Até aí a lógica tudo bem mas no IBConsole ele está sempre me retornando erro e parser no primeiro IF
A procedure segue como abaixo.
CREATE EXCEPTION MATERIAL_JA_CADASTRADO “Este Material já está reservado para este horário”;
CREATE PROCEDURE AGENDAR_MATERIAL
(
material varchar(50),
requisitante varchar(50),
disciplina varchar(50),
data date,
horainicio time,
horafim time,
local varchar(50),
curso varchar(50)
)
RETURNS (
JaCadastrado varchar(50),
Sucesso varchar(50)
)
AS
BEGIN
SELECT
PK_CODAGENDAMENTO, MATERIAL, REQUISITANTE, DISCIPLINA, DATA, HORAINICIO,
HORAFIM, LOCAL, CURSO
FROM
TBL_AGENDARMATERIAIS
WHERE DATA >= SELECT current_date FROM RDB$Database;
IF NOT(MATERIAL IS NULL) THEN
BEGIN
IF (MATERIAL = Material) AND (DATA = Data) THEN
BEGIN
IF (:horainicio >= HORAINICIO) OR (:horafim <= HORAFIM) THEN
EXCEPTION MATERIAL_JA_CADASTRADO;
ELSE
INSERT INTO TBL_AGENDARMATERIAIS
(MATERIAL, REQUISITANTE, DATA, HORAINICIO, HORAFIM, LOCAL, CURSO)
VALUES (:material, :requisitante, :data, :horainicio, :horafim, :local, :curso);
END
END
ELSE
INSERT INTO TBL_AGENDARMATERIAIS
(MATERIAL, REQUISITANTE, DATA, HORAINICIO, HORAFIM, LOCAL, CURSO)
VALUES (:material, :requisitante, :data, :horainicio, :horafim, :local, :curso);
SUSPEND;
END;
__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger
http://br.download.yahoo.com/messenger/
Mais detalhes sobre a lista de discussão lista