[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