Esta build contém uma correção do statement de alteração de tabela.
A informação contida neste documento aplica-se ao TOTVS | DBAccess, build 42.20120327 e superiores.
Situação
Em alterações de estruturas com conversão de tipo de campo numérico para caractere, o valor convertido era salvo com notação científica caso o conteúdo original fosse maior que 999999.
Ocorrência
Em alterações de estruturas com conversão de tipo de campo numérico para caractere e se o valor a ser convertido fosse maior que 999999, a conversão do dado caractere resultante era salvo com notação científica (1.nnnnne+xxx) com possível perda de parte do seu conteúdo sendo que nessa conversão era esperado que o novo valor correspondesse à representação do dado original.
Exemplo:
Original
Convertido
Esperado
1222221.000000
1.22222e+006
1222221.000000
Statement original:
UPDATE dbo.TABELA SET CAMPO = left( convert( varchar( 2000 ), TMPC3), 21 ) WHERE R_E_C_N_O_ > 0 AND R_E_C_N_O_ <= 4096
Correção
Corrigido o statement utilizado para a alteração de tabelas.
Statement corrigido:
UPDATE dbo.TABELA SET CAMPO = cast( cast( TMPC3 as decimal( 15 , 6 ) ) as char( 21 ) ) WHERE R_E_C_N_O_ > 0 AND R_E_C_N_O_ <= 4096