Re: [firebase-br] Erro em campo "Computed By": Overflow occurred during data type convertion. Convertion erros string "16030"

Mário Reis via lista <[email protected]> Thu, 2 Oct 2025 10:04:11 +0000
Newsgroups gmane.comp.db.firebase.portuguese
Message-ID <CAF_dzrkypV664Xe=2LhjGi1Kiky0zbsCe0REqk_m=TDY+TiSLQ@mail.gmail.com>
Al=E9m de agradecer importa referir que cp4 quer cp3 s=E3o do tipo SmallInt=
 e
que como n=E3o consegui fazer um MaskEditdo lado do Delphi, em 4
situa=E7=F5es algu=E9m conseguiu criar codigo com > 4 digitos:
select cp4, cp3  from empresas E
WHERE E.cp4 >9999 or CHARACTER_LENGTH( Trim( CAST( E.cp4 as varchar(10) )
 ) ) > 4; E, logo descobri o(s) gato(s):
"CP4" "CP3"
"16030" "2301"
"11675" "180"
"12954" "24"
"11900" "221"
"15005"
"19700" "172"
corrigi '=E0 unha=B4' e fiz uma trigger  if cp4 >9999 then exception  EX_CP4
(dei-lhe s grants)  'Excede os limites (1/9999)' por falatar ao DbEdit o
EditMask que funcione para al=E9m do 3 digitos.
Segundo a AI parece que =E9 um erro cr=F3nico que a Borland e depois a
Embarcadero t=EAm at=E9 hoje (XE7) por corrigir, porque de outro modo um
m=E1scara #### reolvia o assunto.
Mas mais uma vez obrigado

Com os meus melhores cumprimentos
M=E1rio Agostinho Reis
919262146

Esta mensagem cont=E9m informa=E7=E3o de natureza confidencial e =E9
exclusivamente dirigida ao(s) destinat=E1rio(s) indicado(s). Se, por engano,
receber este email agradecemos que n=E3o o copie nem o reenvie e que nos
notifique do ocorrido atrav=E9s do email de resposta.


Gladiston Santana <[email protected]> escreveu (quarta, 1/10/2025
=E0(s) 20:38):

> Evite inferencias, no seu create table fa=E7a assim:
>       CREATE TABLE ORCAMENTOS (
>           CODITEM_ALMOX           VARCHAR(36),
>           (...)
>                     VL_UNITARIO              NUMERIC(18,4) DEFAULT 0.00
> NOT NULL,
>                     QTDE_ATUAL              NUMERIC(18,4) DEFAULT 0.00 NOT
> NULL,
>           VL_TOTAL          *NUMERIC(18,4)* COMPUTED BY (
>              *CAST*(VL_UNITARIO*QTDE_ATUAL) *AS **NUMERIC(18,4)*
>           ),
>           (...)
>       );
>
> Ou seja, tenha um tipo antes do 'compute by' e sempre que for lidar com
> numeros fa=E7a um cast para o mesmo tipo.
> N=E3o usar um cast pode permitir que um n=FAmero inteiro varie entre smal=
lint,
> int e bigint, ou seja dinamicamente inferido, mas o cast for=E7ar=E1 um t=
ipo
> espec=EDfico para n=E3o variar.
> No delphi por exemplo, os TFields tem tipos fixos e se houver varia=E7=E3=
o,
> especialmente em tamanhos de strings ou tipos numericos, eles podem dar
> erro.
> Se seus campos numericos permitem nulos, use COALESCE.
>
>
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.fi=
rebase.com.br/fb/artigo.php?id=3D1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista=
.html