Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera, bom ontem perdi meu dia de trabalho com um problema dakeles muito sinistro. Vamos la, eu tenho um sistema em delphi + firebird. Em determinado momento quando eu executo uma query o sistema trava. Em alguns computadores em funciona normalmente não travando de jeito nenhum; em outros computadores tem hora que ele consulta e tem hora que ele trava, e na minoria dos computadores (ate agora só no laptop do chefe..rsss) ele trava toda hora não chegando a executar nenhuma vez. Tentei substiuir a gds32 e a fbclient dos computadores que funcionaram nos que não estavam funcionando e nada, instalei o firebird de novo nas makinas e nada, tentei de tudo. Procurei tudo que podia na net e também nada. Testando o select no ibexpert ele funciona normalmente. O que mais me chamou a atenção foi porque em certas makinas ele funciona e outras não ja que todas possuem a mesma versão do banco de dados. Segue aí o maldito sql que herdei de do antigo programador aki da empresa.
select
cast(t.data_hora as time) HORA_CHEGADA
, t.f1 CODIGO_CLIENTE
, t.NOME_CLIENTE
, a.HORA_INICIAL
, coalesce(a.codigo_servico, a.codigo_pacote) CODIGO_TRATAMENTO
, coalesce(a.nome_servico, a.nome_pacote) TRATAMENTO
, coalesce(a.codigo_pacote, 'Sim') E_UM_SERVICO
, t.DATA_HORA
, cast(c.DATA_DE_CADASTRO as date) DATA_DE_CADASTRO
, cast(c.nascimento as date) DATA_NASCIMENTO
, cast(a.data_operacao as date) DATA_OPERACAO
, cast(t.data_hora as date) DATA_AGENDA
, t.F6
, t.F7
, t.F10
, a.CODIGO_PROFISSIONAL
, a.NOME_PROFISSIONAL
, a.TEXTO_ITEM
, ( select case
when(coalesce(sum(cce.creditos_total), 0) - coalesce(sum(cce.creditos_usados), 0) < 0)
then 0
else coalesce(sum(cce.creditos_total), 0) - coalesce(sum(cce.creditos_usados), 0)
end
from
clientes c
join
vendas v
on c.codigo = t.f1 and v.tipo is null and v.cancelado is null and c.codigo = v.codigo_cliente
join
vendas_itens vi
on vi.tipo_pedido = 'Pacote' and vi.tipo is null and vi.item_cancelado = 'Não' and vi.codigo = v.codigo
left join
clientes_creditos_estetica cce
on vi.codigo_pacote_compra = cce.codigo_compra
) sessoes_restantes
,( SELECT count(*)
FROM
vendas v
join
vendas_pagamento vp
on v.CODIGO_cliente = t.f1 and vp.quitado = 'Não' and vp.anulado is null and VP.CODIGO = V.CODIGO
join
FORMAS_PAGAMENTO fpg
on fpg.centro_custos = '01.001.005' and fpg.codigo = vp.forma_pagamento
) pendencia
from
terminais_registros t
join
agenda a
on
a.codigo_profissional = :profissional
and a.data_agendamento = :data
and t.programa = 6
and a.tipo_agendamento <> 'Bloqueio'
and case
when (:status = 0) then coalesce(nullif(t.f6, '0'), '1')
when (:status = 1) then
case when(nullif(t.f6, '0') is not null and nullif(t.f7, '0') is null) then '1' else '0' end
when (:status = 2) then
case when(nullif(t.f6, '0') is not null and nullif(t.f7, '0') is not null) then '1' else '0' end
else '0'
end = '1'
and cast(t.data_hora as date) = :data
and a.codigo_cliente = t.f1
left join
clientes c
on c.codigo = t.f1
Galera quem puder ajudar agradeço mesmo, o problema ta chapa quente!!!
Carregando comentários...