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