[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