Fórum 2,3 is not a valid BCD value, ERRO TFMTBCDField - Desafio!! #366508
28/11/2008
0
Estou já há alguns dias com este problema, depois de várias pesquisas e mais pesquisas, nao encontrei como resolver o dito problema.
Uso Delphi 7.0 / Firebird 2.0 / DvExpress.
Estou desenvolvendo uma aplicação para rodar via WEB usa SOAPConnection / ClientDataset / DataSource - No Client
SOAPDispatcher / SOAPPascalInvoker / WSDLHTMLPublish No ServidorWEB
SQLConnection / DataSetProvider / SQLDataSet No Servidor
No Servidor para criar a DLL para conexão com o Client.
Bom, o meu problema esta nos campos com valores (Numeric(15,2) do tipo TFMTBCDField. O dito nao aceita o uso de vírgulas (,), na mascara do campo.
E quando digita-se a vírgula ele da o erro ´2,3 is not a valid BCD value´...
Encontrei um colega que teve que criar um Edit para jogar o valor e depois transformá-lo para jogar no BD. Mais uma, no IbExpert, posso informar o valor Ex 15,98 e tudo normal, agora na aplicação dá o maldito erro.
Agora, tem mais uma. Tenho uma outra aplicação que uso o banco de dados local, sem o uso da DLL, tem a mesma estrutura dos campos, ´FUNCIONA NORMAL´.... não entendo isso...
To esquecendo de algo, ou não tem solução mesmo?
Aguardo a ajuda dos amigos sofredores.... quando encontram problemas do tipo. Vlw galera... espero ter sido claro...
Alexpaes
Curtir tópico
+ 0Posts
28/11/2008
Alexpaes
- Fui Painel de Controle, verifiquei o decimalseparator, estava com ´,´. Porém, se eu mudar via código para ´.´, funciona normal, só que tem que usar o ponto... sabem como são os usário para isso, querem usar a ´,´.
- Linhas de código para conversão do valor. Não deu.
Será que tem mais opções?
Gostei + 0
28/11/2008
Builder
ThousandSeparator:=´.´;
DecimalSeparator:=´,´;
CurrencyDecimals:=4;
DateSeparator:=´/´;
ShortDateFormat:=´DD/MM/YYYY´;
TimeSeparator:=´:´;
ShortTimeFormat:=´HH:MM´;
LongTimeFormat:=´HH:MM:SS´;
ShortMonthNames[01]:=´Jan´;
ShortMonthNames[02]:=´Fev´;
ShortMonthNames[03]:=´Mar´;
ShortMonthNames[04]:=´Abr´;
ShortMonthNames[05]:=´Mai´;
ShortMonthNames[06]:=´Jun´;
ShortMonthNames[07]:=´Jul´;
ShortMonthNames[08]:=´Ago´;
ShortMonthNames[09]:=´Set´;
ShortMonthNames[10]:=´Out´;
ShortMonthNames[11]:=´Nov´;
ShortMonthNames[12]:=´Dez´;
LongMonthNames[01]:=´Janeiro´;
LongMonthNames[02]:=´Fevereiro´;
LongMonthNames[03]:=´Março´;
LongMonthNames[04]:=´Abril´;
LongMonthNames[05]:=´Maio´;
LongMonthNames[06]:=´Junho´;
LongMonthNames[07]:=´Julho´;
LongMonthNames[08]:=´Agosto´;
LongMonthNames[09]:=´Setembro´;
LongMonthNames[10]:=´Outubro´;
LongMonthNames[11]:=´Novembro´;
LongMonthNames[12]:=´Dezembro´;
ShortDayNames[1]:=´Dom´;
ShortDayNames[2]:=´Seg´;
ShortDayNames[3]:=´Ter´;
ShortDayNames[4]:=´Qua´;
ShortDayNames[5]:=´Qui´;
ShortDayNames[6]:=´Sex´;
ShortDayNames[7]:=´Sáb´;
LongDayNames[1]:=´Domingo´;
LongDayNames[2]:=´Segunda´;
LongDayNames[3]:=´Terça´;
LongDayNames[4]:=´Quarta´;
LongDayNames[5]:=´Quinta´;
LongDayNames[6]:=´Sexta´;
LongDayNames[7]:=´Sábado´;
Se estiver utilizando o driver da Devart (antiga CoreLab), ele teve problemas com campos que utilizam decimal, a versão que corrige o defeito é a dbxida 2.40.0.13
Gostei + 0
28/11/2008
Alexpaes
Com relação aos parâmetros, jah havia colocado.
Mesmo assim criei uma função para tal.
Encontrei esse arquivo...
http://www.baixaja.com.br/downloads/Windows/Development/Components-Libraries/dbExpress-driver-for-InterBase_2507_1.html
Seria o qual deveria instalar? Se bem entendi.
Não terei problemas com outras aplicações, na instalação deste driver?
Gostei + 0
28/11/2008
Alexpaes
agora que percebi, ele nao é um driver free neh?
não teria uma solução sem ônus?
Gostei + 0
28/11/2008
Builder
http://www.devart.com/dbx/download.html
e o que foi alterado na versão 2.40.013 está no fórum:
http://devart.com/forums/viewtopic.php?t=13438
Lembrando que o driver é proprietário, pago e a versão disponível para download expira em 30 dias.
Se estiver utilizando o driver nativo do DBExpress para Interbase, ele não tem garantias de compatibilidade com o Firebird, principalmente nas versões 2.x - A solução nestes casos é utilizar driver de terceiros (Devart, Upscene, UIB Firebird e TBODBXFB do Tiago Borges.
Comprei o driver da Upscene pelo site www.firebase.com.br, que funciona muito bem, mas ainda não tem suporte oficial ao Delphi 2009.
Gostei + 0
28/11/2008
Builder
UIB Firebird
TBODBXFB do Tiago Borges
Embora estes projetos estejam ativos, o UIB não anda a contento no quesito atualizado para as últimas versões e o TBODBXFB ainda esta em testes mais o fato do autor não liberar os fontes (o que pode ser um problema no futuro se ele não quiser mais dar suporte).
O investimento nos drivers proprietários é relativamente baixo e digo que compensa o investimento (é uma dor de cabeça a menos).
Gostei + 0
28/11/2008
Alexpaes
Gostei + 0
28/11/2008
Builder
Cria uma aplicação bem básica de teste, para acessar uma tabela que tenha decimais e testa com os Trials (Upscene e Devart) - Inclui, altera, exclui, emite listagem, etc. Se funcionar, é aplicar a solução para o resto de suas aplicações.
Os fabricantes complicam tanto as coisas que na parte de informática, são tantas variáveis que é impossível afirmar com certeza que vai funcionar, ainda mais com o reforço da lei de Moore.
Gostei + 0
28/11/2008
Alexpaes
a versão dele é para Delphi 2007, no caso Delphi 7.0... teria problemas em instalar?
Gostei + 0
28/11/2008
Alexpaes
Segue o link que achei...
http://www.tbosystems.bluehosting.com.br/dbx4/index.php
Gostei + 0
28/11/2008
Alexpaes
Voce tem MSN, ou seja, alguma forma de falarmos mais rapidamente?
se aceitar a idéia, envie um email pra mim com seu msn...
asp@aspsoftwares.com.br
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)