[firebase-br] Erro em Stored Procedure

Marcio phoenix.info em itelefonica.com.br
Seg Abr 28 16:46:56 -03 2008


Amigos, criei a SP abaixo para uma agenda médica, ela pega o intervalo de atendimento de um medico divide pela duração de uma consula depois preenche começando pelo hora inicial de atendimento. Aí ela pesquisa pra ver se já tem alguém agendado. O problema é que se não tem ninguém agendado beleza, mas se tem ela repete dois horários antes do horário agendado. Se alguém tiver uma idéia melhor pra me ajudar agradeço 

begin 
/* Procedure Text */ 
for 
SELECT H.hrini,M.intervalo,sum((H.hrfin-H.hrini)/(M.intervalo*60))as total from horarios H,medicos M 
WHERE h.codmed=:cdmed_ent and m.codmed=:cdmed_ent and h.dia=:dia_ent group by H.hrini,M.intervalo 
into :varhrini,:varinterval,:total_var 
do 
begin 
cont=0; 
sessoes=:varhrini; 
while (:cont<:total_var) do 
begin 
for 
SELECT A.hora,A.nomecliente,A.tel,C.convenio as convenio from agendamento A,convenios C 
WHERE A.data=:data_ent and A.hora=:sessoes and A.cdmed=:cdmed_ent and A.cdconvenio=C.cdconvenio 
INTO :hora_var,:nome_var,:tel_var,:conv_var 
do 
suspend; 
if (:hora_var is null) then 
begin 
hora_sai=:sessoes; 
nome_sai='livre'; 
tel_sai=:tel_var; 
end 
else 
begin 
hora_sai=:hora_var; 
nome_sai=:nome_var; 
tel_sai=:tel_var; 
hora_var=null; 
end 
sessoes=:sessoes+(:varinterval*60); 
cont=:cont+1; 
suspend; 
end 
end 
end



Mais detalhes sobre a lista de discussão lista