[firebase-br] RES: RES: RES: RES: Erro em trigger
rodrigo
firebase em dominioinf.com.br
Sábado Janeiro 30 11:23:20 -03 2021
Bom dia Carlos,
Removi inclusive os fields do meu IBDetailFiscal e não tem em nenhum outro lugar inserindo null no campo ORDEM e DATAHORA.
Não sei mais o que fazer, mas uma coisa é certa, não tenho como confiar na execução de triggers no Firebird, vou ter
Que fazer manual em cada lançamento.
É a única solução que estou conseguindo chegar agora.
Grato pela ajuda
Enviado do Email para Windows 10
De: Carlos H. Cantu via lista
Enviado:sexta-feira, 29 de janeiro de 2021 15:43
Para: lista em firebase.com.br
Cc:Carlos H. Cantu
Assunto: Re: [firebase-br] RES: RES: RES: Erro em trigger
Verifique outros triggers ou outras rotinas, tanto no sistema como no
banco, que podem estar colocando null nesses campos depois de ter
passado por esse trigger.
PS: Se esses campos nunca podem ficar nulos, declare eles como not
null, isso inclusive ajudaria vc achar erros na logica que podem
exigir.
Qual a versao do Firebird?
[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
r> Boa tarde
r> CREATE TRIGGER TR_ORDEM_DETAILFISCAL FOR DETAILFISCAL
r> ACTIVE BEFORE INSERT POSITION 0
r> AS
r> BEGIN
r> NEW.ORDEM = GEN_ID(GEN_ORDEM, 1);
r> NEW.DATAHORA = CURRENT_TIMESTAMP;
r> END
r> ;
r> A trigger esta dessa forma.
r> Grato
r> Enviado do Email para Windows 10
r> De: Carlos H. Cantu via lista
r> Enviado:sexta-feira, 29 de janeiro de 2021 14:48
r> Para: FireBase
r> Cc:Carlos H. Cantu
r> Assunto: Re: [firebase-br] RES: RES: Erro em trigger
r> Faça backup/restore e veja se restaura sem erros.
r> O gfix não consegue detectar erros lógicos, por exemplo, um campo "not null" estar null.
r> E verifique também se na base o trigger está ativo.
r> []s
r> Carlos H. Cantu
r> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
r> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
r>> Bom dia Cantu, obrigado pela resposta
r>> A principio, fiz o teste com gfx
r>> gfix -validate -full C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -mend -full -ignore C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -validate -full C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -mend -full -ignore C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -validate -full C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -mend -full -ignore C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -validate -full C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> gfix -mend -full -ignore C:\Comercial\DMLoja\Recupera\DADOS1.fdb
r>> em nenhum desses comandos retornou erro.
r>> Aparentemente a base não esta corrompida.
r>> Isso já me aconteceu em outros bancos com outros clientes em outras tabelas e campos.
r>> Acredito que tenha um baita bug no firebird ai.
r>> Enviado do Email para Windows 10
r>> De: Carlos H. Cantu via lista
r>> Enviado:sexta-feira, 29 de janeiro de 2021 12:08
r>> Para: FireBase
r>> Cc:Carlos H. Cantu
r>> Assunto: Re: [firebase-br] RES: Erro em trigger
r>> GEN_ORDEM é chave primaria? Se sim, não pode estar nula. Se vc
r>> encontrou algum registro onde esse campo está nulo, sendo ele uma PK,
r>> então seu banco deve estar corrompido.
r>> Não vejo problema no código do trigger. Verifique o banco com o gfix e
r>> faça também um backup/restore para valida-lo.
r>> []s
r>> Carlos H. Cantu
r>> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
r>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
rvl>>> So pra completar a NEW.ORDEM = GEN_ID(GEN_ORDEM, 1);
rvl>>> Também tem vários que estão como null.
rvl>>> Grato
rvl>>> Enviado do Email para Windows 10
rvl>>> De: rodrigo via lista
rvl>>> Enviado:sexta-feira, 29 de janeiro de 2021 10:58
rvl>>> Para: FireBase
rvl>>> Cc:rodrigo
rvl>>> Assunto: [firebase-br] Erro em trigger
rvl>>> Bom dia,
rvl>>> Nessa trigger, quando o registro é gravado ele teria que colocar automaticamente
rvl>>> A data e a hora.
rvl>>> Mas em muitos registros está como null
rvl>>> CREATE TRIGGER TR_ORDEM_DETAILFISCAL FOR DETAILFISCAL
rvl>>> ACTIVE BEFORE INSERT POSITION 0
rvl>>> AS
rvl>>> BEGIN
rvl>>> NEW.ORDEM = GEN_ID(GEN_ORDEM, 1);
rvl>>> if (NEW.DATAHORA IS NULL) THEN
rvl>>> NEW.DATAHORA = CURRENT_TIMESTAMP;
rvl>>> END
rvl>>> ;
rvl>>> O que será que esta errado?
rvl>>> Grato
r>> ______________________________________________
r>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
r>> Para saber como gerenciar/excluir seu cadastro na lista, use:
r>> http://www.firebase.com.br/fb/artigo.php?id=1107
r>> Para consultar mensagens antigas:
r>> http://www.firebase.com.br/pesquisa_lista.html
r> ______________________________________________
r> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
r> Para saber como gerenciar/excluir seu cadastro na lista, use:
r> http://www.firebase.com.br/fb/artigo.php?id=1107
r> Para consultar mensagens antigas:
r> http://www.firebase.com.br/pesquisa_lista.html
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html
--
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus
Mais detalhes sobre a lista de discussão lista