[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