2,3 is not a valid BCD value, ERRO TFMTBCDField - Desafio!!

Delphi

28/11/2008

Bom dia Galera,

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

Alexpaes

Curtidas 0

Respostas

Alexpaes

Alexpaes

28/11/2008

- Fui no FMTBCD.pas para mudar algumas linhas de código informadas por um colega nosso, mas não resolveu. Só se mexi errado. hehe

- 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
Builder

Builder

28/11/2008

No Delphi, verifica se a aplicação tem as constantes definidas para a nossa região/país, por exemplo:

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
Alexpaes

Alexpaes

28/11/2008

Amigo Builder,

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
Alexpaes

Alexpaes

28/11/2008

Amigo,

agora que percebi, ele nao é um driver free neh?
não teria uma solução sem ônus?


GOSTEI 0
Builder

Builder

28/11/2008

O site oficial do driver dbxida é:

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
Builder

Builder

28/11/2008

Driver sem ônus:

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
Alexpaes

Alexpaes

28/11/2008

Esse driver resolveria meu problema?


GOSTEI 0
Builder

Builder

28/11/2008

Só tem um jeito de saber => Testando.

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
Alexpaes

Alexpaes

28/11/2008

Estive vendo com relacao a este driver e:

a versão dele é para Delphi 2007, no caso Delphi 7.0... teria problemas em instalar?


GOSTEI 0
Alexpaes

Alexpaes

28/11/2008

opa,,,

Segue o link que achei...

http://www.tbosystems.bluehosting.com.br/dbx4/index.php


GOSTEI 0
Alexpaes

Alexpaes

28/11/2008

Builder,

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
POSTAR