[firebase-br] Stored Procedure com Erro

Carlos H. Cantu (TeamFB) listas em warmboot.com.br
Qui Jul 21 08:08:56 -03 2005


Além disso, substitua:

IF NOT(MATERIAL IS NULL) THEN

por

IF (MATERIAL IS NOT NULL) THEN

[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br

TG> Olá Marcelo !

TG> É pq vc tem q ter um INTO no primeiro select para receber os valores dos
TG> campos.. afinal, para q vc vai fazer ele se não houver uma verificação no
TG> resultado.

TG> Okz !? :)

TG> O not(mat) tb pode dar algum problema, não tenho certeza da sintaxe.

TG> []s
TG> Tiago Gouvêa
TG> ----- Original Message ----- 
TG> From: "Fortes Marcelo" <marcelosoftware em yahoo.com.br>
TG> To: "Carlos H. Cantu" <listas em warmboot.com.br>; "FireBase" 
TG> <lista em firebase.com.br>
TG> Sent: Wednesday, July 20, 2005 9:48 PM
TG> 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
>>
>> 


TG> ______________________________________________
TG> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
TG> Para editar sua configuração na lista, use o endereço
TG> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
TG> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista