[firebase-br] RES: Erro em trigger

Gladiston Santana gladiston em vidy.com.br
Quarta Fevereiro 3 17:29:31 -03 2021


Esqueça, li errado seu codigo e achei que tinha misturado os tipos, depois
de ler um pouco mais lento, cheguei a conclusão que seu codigo está certo,
se ele tá gravando nulo é porque provavelmente há um post no lado cliente
após a execução da trigger.
Usando Delphi, isso pode acontecer com o uso de datawares que não receberam
a intervenção da trigger. Voce enviou nulo, sua trigger consertou, mas nada
foi devolvido ao lado cliente que prosseguiu e a proxima execução foi
alteração já que a etapa anterior foi a inclusão e como não há uma trigger
pos-alteração para intervir, se o lado cliente enviar nulo, nulo ficará.
Você tem um capitulo no help do firedac que explica como fazer um refresh
dos dados e cache local saber como ficou o resultado final, acho que é isso
que lhe falta.

Em qua., 3 de fev. de 2021 às 08:10, rodrigo via lista <
lista em firebase.com.br> escreveu:

> Bom dia Gladiston,
>
> Não sei se entendi bem sua explicação.
>
> Mas se entendi vc quer dizer que tenho que fazer uma trigger so para
> Alimentar o campo ordem em uma trigger e o campo datahora
> Em outra trigger seria isso?
>
> Grato
>
> Enviado do Email para Windows 10
>
> De: Gladiston Santana via lista
> Enviado:terça-feira, 2 de fevereiro de 2021 11:19
> Para: FireBase
> Cc:Gladiston Santana
> Assunto: Re: [firebase-br] Erro em trigger
>
> gen_id vai incrementar e te retornar um numero inteiro, certo?
> Se sim, acho que voce criou uma inconsistência ao misturar timestamp e
> inteiro.
> Não estou falando do FB, mas muitas linguagens podem retornar null ou lixo
> quando se misturam tipos diferentes numa expressão de mais.
> Timestamp é um número de ponto flutuante internamente, mas as vezes não
> funciona aritmeticamente porque tende a ser avaliado pelo interpretador que
> pode rejeitar a expressao, por exemplo, se a regra for unixtime um valor 0
> retorna 01.01.1970 e a parte fracionada será tratada como hora, mas como
> sabe a hora, minuto e segundo precisa ser entendida de acordo com as regras
> explicadas para não retornar um horario que nã existe.
> Minha sugestão é nunca misturar tipos. Se usa FB3 tente usar o incremental,
> ele é bem seguro. Ou use o GEN_ID mas apenas a parte de incremento, não
> precisar testar nulabilidade porque uma vez que você inicie o valor inicial
> como zero ele nunca resultará num nulo.
>
> Em sex., 29 de jan. de 2021 às 10:58, rodrigo via lista <
> lista em firebase.com.br> escreveu:
>
> > Bom dia,
> >
> > Nessa trigger, quando o registro é gravado ele teria que colocar
> > automaticamente
> > A data e a hora.
> > Mas em muitos registros está como null
> >
> > CREATE TRIGGER TR_ORDEM_DETAILFISCAL FOR DETAILFISCAL
> > ACTIVE BEFORE INSERT POSITION 0
> > AS
> > BEGIN
> > NEW.ORDEM = GEN_ID(GEN_ORDEM, 1);
> > if (NEW.DATAHORA IS NULL) THEN
> > NEW.DATAHORA = CURRENT_TIMESTAMP;
> > END
> > ;
> >
> > O que será que esta errado?
> >
> > Grato
> >
> >
> >
> > --
> > Este email foi escaneado pelo Avast antivírus.
> > https://www.avast.com/antivirus
> > ______________________________________________
> > 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
> >
>
>
> --
> A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
> Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
> na Melhoria Continua.
>
> Em março de2018 migramos com sucesso para a nova versão da ISO 9001.
>
> Somos a única Empresa Brasileira de Engenharia de Laboratórios com
> certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
> Fabricação e Instalação de Laboratórios.
> ______________________________________________
> 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
> ______________________________________________
> 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
>


-- 
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com
certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
Fabricação e Instalação de Laboratórios.


Mais detalhes sobre a lista de discussão lista