[firebase-br] SQL que funcionava no FB 2.1 não funciona como esperado no FB 3.0

Carlos H. Cantu listas em warmboot.com.br
Qua Jan 15 10:49:43 -03 2020


Retirado do fb.conf do FB 2.5:

# Prior to Firebird 2.5 the SET clause of the UPDATE statement assigned
# columns in the user-defined order with the NEW column values being
# immediately accessible to the subsequent assignments. This did not
# conform to the SQL standard. Starting with Firebird 2.5, only OLD column
# values are accessible to all the assignments of the SET clause.
#
# Example of the old vs new behaviour:
#
# UPDATE T SET A = B, B = A
# old result: A gets equal to B, B doesn't change
# new result: A and B get their values exchanged
#
# Change this configuration option to 1 (true) only if your SQL code relies
# on the legacy semantics of the SET clause. It's provided as a temporary
# solution for backward compatibility issues and will be deprecated in
# future Firebird versions.
#
# Type: boolean
#
#OldSetClauseSemantics = 0

PS: O parâmetro OldSetClauseSemantics foi descontinuado no FB 3.

[]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

FCJ> Pessoal,

FCJ> O SQL abaixo é para aplicar um desconto no valor dos itens de um pedido.
FCJ> Funcionava no FB 2.1 mas no FB 3.0 se comporta de maneira diferente.

FCJ> update pedidos_det
FCJ> set desconto=10,
FCJ> valunitdesc=round(valunit-(valunit*desconto/100),2,.
FCJ> total=valunitdesc*qtde
FCJ> where id_pedidos=123;

FCJ> Executei pelo IBExpert.
FCJ> Na primeira execução só a coluna desconto foi setada para 10; valunitdesc e
FCJ> total permaneceram com os valores que já tinham.

FCJ> Pesquisei no Release Notes mas não consegui nenhuma informação.

FCJ> Alguém sabe como fazer isso?

FCJ> []'s
FCJ> ______________________________________________
FCJ> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
FCJ> Para saber como gerenciar/excluir seu cadastro na lista, use:
FCJ> http://www.firebase.com.br/fb/artigo.php?id=1107
FCJ> Para consultar mensagens antigas:
FCJ> http://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista