[firebase-br] Bug grave no Firebird
Pha (TeamFB)
lista em pha.com.br
Qua Jul 13 07:55:02 -03 2005
Como ja mencionei antes.
Concordo com o Sydnei e acho que o pessoal de desenvolvimento do FB nao deveria ter alterado o tipo Numeric, hoje Numeric = Decimal.
Sidnei, o que voce pode fazer e entrar na lista de desenvolvimento (Ingles) e perguntar para eles o motivo da mudança, do mais nao tem o que ser feito.
PHA
Nova Odessa / SP - Brazil
Membro do TeamFB (FireBase)
-----Mensagem original-----
From: "Sidnei" sidnei em amcom.com.br
Date: Wed, 13 Jul 2005 08:43:12 -0300
To: "FireBase" lista em firebase.com.br
Subject: Re: [firebase-br] Bug grave no Firebird
> Não concordo muito com vc, pois o banco de dados, tem varias
> funcionalidades. A principal delas que todo mundo sabe, eh armazenar dado> s.
> As outras, dai vai de cada banco. Mas como vi que no firebird tem uma opc> ao
> para criar um campo do tipo NUMERIC(12,4), entao no meu entender, ele vai>
> "Berrar" quando inserir algum valor maior do que o especificado no tipo d> o
> campo. Se ele nao "Berrar", para mim, nao se torna uma funcionalidade do
> banco, e sim uma preocupacao, pois terei que fazer tratamentos que o banc> o
> de dados deveria fazer e nao faz.
>
> Outra coisa, vc comparou o Firebird com alguns bancos de dados. Eu aki, u> so
> o Firebird em mais ou menos 30 estacoes que descarregam numa base Online
> Oracle. O que acontece:
> - O Firebird aceita numeros fora do NUMERIC(12,4), e quando vai descarreg> ar
> para o Oracle, ele "Berra" lah dizendo que nao aceita.
>
> Sidnei
> ----- Original Message -----
> From: "Otto" <ottofuch em terra.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, July 12, 2005 5:54 PM
> Subject: Re: [firebase-br] Bug grave no Firebird
>
>
> > Nos arquivos xBase (.DBF) os valores numéricos são armazenados como>
> > strings
> > de caracteres e convertidos para os valores após a leitura no arquivo> de
> > dados .DBF.
> > No Paradox não sei, pois a Borland nunca abriu dados sobre o Paradox.> Mas
> > permite, além de currency, o BCD
> >
> > Em
> > http://www.uniube.br/uniube/cursos/graduacao/tpd/Disciplinas/jr/minicur> so/ParadoxSQL.html#topico2
> > temos:
> > "BCD (Binary Coded Decimal - # ) : Este tipo de campo é usado para
> > realizar
> > cálculos numéricos com uma precisão maior do que aquela efetuada > com os
> > demais tipos númericos. A principal utilidade deste tipo de campo con> siste
> > em fornecer compatibilidade com outras aplicações que usam dados de> ste
> > tipo,
> > pois no caso da utilização de tabelas Paradox num aplicativo, só > serão
> > permitidos números com um máximo de 15 algarismos significativos. "
> >
> > O BCD é muito usado no COBOL (COmmon Business Orientated Language), e> pelo
> > que me lembro, num byte, usa ós dois nibles do byte. Um byte, de 8 bi> ts,
> > compõe-se de dois nibles 22221111 onde 1111 é o nible à direita,> e 2222 é
> > o
> > nible à esquerda. Com um nible pode-se representar númeos de 0 a 15> . Mas
> > em
> > cada nible, apenas os númeos de 0 a 9 são aproveitados para represe> ntar os
> > respectivos numeros decimais. Consegue-se armazenar dois dígitos deci> mais
> > nun byte.
> >
> > Tanto o Delphi 6 quanto o C++ Builder 5 (foi os que eu olhei) tem class> es
> > de
> > suporte à representação BCD. Mas como também existe o tipo curr> ency, não
> > há
> > necessidade, embora o currency sempre opera com quatro casas decimais a> pós
> > a
> > vírgula (ponto para os americanos).
> >
> > No caso do Firebird (e Access e outros mais) o negócio é entregar o> s
> > números
> > já na conformação certa ao Firebird. Quantos aos dados calculados
> > internamente ...
> > 100+
> > Otto
> >
> >
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: "PHA (TeamFB)" <lista em pha.com.br>
> > To: "FireBase" <lista em firebase.com.br>
> > Sent: Tuesday, July 12, 2005 10:54 AM
> > Subject: Re: [firebase-br] Bug grave no Firebird
> >
> >
> >> Concordo com o Sydnei, o limite deveria ser respeitado.
> >>
> >> Eles mudaram isso, so nao me lembro em qual versão, antigamente o Nu> meric
> > era respeitado e o Decimal nao.
> >>
> >> NUMERIC datatype
> >>
> >> NUMERIC(x,y)
> >> In the syntax above, InterBase stores exactly x digits. Of that number> ,
> > exactly y digits are
> >> to the right of the decimal point. For example,
> >>
> >> NUMERIC(5,2)
> >> declares that a column of this type always holds numbers with exactly > 5
> > digits, with
> >> exactly two digits to the right of the decimal point: ppp.ss.
> >>
> >> DECIMAL datatype
> >>
> >> DECIMAL(x,y)
> >> In the syntax above, InterBase stores at least x digits. Of that numbe> r,
> > exactly y digits are
> >> to the right of the decimal point. For example,
> >>
> >> DECIMAL(5,2)
> >> declares that a column of this type must be capable of holding at leas> t
> > five but possibly
> >> more digits and exactly two digits to the right of the decimal point:
> > ppp.ss.
> >>
> >> PHA
> >> Nova Odessa / SP - Brazil
> >> Membro do TeamFB (FireBase)
> >>
> >> -----Mensagem original-----
> >> From: "Sidnei" sidnei em amcom.com.br
> >> Date: Tue, 12 Jul 2005 12:12:44 -0300
> >> To: "Carlos H. Cantu" listas em warmboot.com.br
> >> Subject: Re: [firebase-br] Bug grave no Firebird
> >>
> >> > Resumindo, o NUMERIC(12,4) nao serve pra nada de controle do
> > Firebird....
> >> >
> >> >
> >> > ----- Original Message -----
> >> > From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
> >> > To: "FireBase" <lista em firebase.com.br>
> >> > Sent: Tuesday, July 12, 2005 11:09 AM
> >> > Subject: Re: [firebase-br] Bug grave no Firebird
> >> >
> >> >
> >> > > No dialeto 3, um campo numeric (12,4) é armazenado internamente > como
> >> > > um inteiro de 64bits, que permite valores entre:
> >> > >
> >> > > -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807
> >> > >
> >> > > No seu caso, como vc determinou 4 casas decimais, irá conseguir
> >> > > armazenar valores etre:
> >> > >
> >> > > -922.337.203.685.477,5808 e 922.337.203.685.477,5807
> >> > >
> >> > > []s
> >> > > Cantu (Membro do TeamFB - FireBase)
> >> > > http://www.warmboot.com.br
> >> > > FireBase - http://www.FireBase.com.br
> >> > >
> >> > > S> Estou usando o Firebird versão 1.5.2.4731, e aconteceu um
> >> > > S> problema onde me assustei muito. Vou passar o problema abaixo
> >> > > S> atravez de script:
> >> > >
> >> > > S> CREATE TABLE TESTE(VAL1 NUMERIC(12,4));
> >> > > S> COMMIT;
> >> > >
> >> > > S> INSERT INTO TESTE
> >> > > S> (VAL1)
> >> > > S> VALUES
> >> > > S> (1234567890123);
> >> > > S> COMMIT;
> >> > >
> >> > > S> Notem que criei um campo com capacidade de 12 e o firebird
> >> > > S> aceita eu inserir um valor com 13 digitos.
> >> > >
> >> > > S> Alguem pode me dizer se ja passou por isso?
> >> > >
> >> > > S> Sidnei
> >> > > S> ______________________________________________
> >> > > S> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.b> r
> >> > > S> Para editar sua configuração na lista, use o endereço
> >> > > S> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com> .br
> >> > > S> Para consultar mensagens antigas: http://firebase.com.br/pesqui> sa
> >> > >
> >> > >
> >> > > ______________________________________________
> >> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> >> > > Para editar sua configuração na lista, use o endereço
> >> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >> >
> >> >
> >> > ______________________________________________
> >> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> >> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>
> >>
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> >> Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista