[firebase-br] Stored Procedure com Erro
Tiago Gouvêa
tiago em netkrio.com.br
Qua Jul 20 22:15:52 -03 2005
Olá Marcelo !
É pq vc tem q ter um INTO no primeiro select para receber os valores dos
campos.. afinal, para q vc vai fazer ele se não houver uma verificação no
resultado.
Okz !? :)
O not(mat) tb pode dar algum problema, não tenho certeza da sintaxe.
[]s
Tiago Gouvêa
----- Original Message -----
From: "Fortes Marcelo" <marcelosoftware em yahoo.com.br>
To: "Carlos H. Cantu" <listas em warmboot.com.br>; "FireBase"
<lista em firebase.com.br>
Sent: Wednesday, July 20, 2005 9:48 PM
Subject: [firebase-br] Stored Procedure com Erro
>
> 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/
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
Mais detalhes sobre a lista de discussão lista