Fórum Erro ao tentar gravar texto " 30.00" em Campo Numeric(10,2), no firebird #383118

08/08/2010

0

Preciso gravarr os dados de um arquivo texto em uma tabela do firebird, conforme abaixo:  DADOS.TXT 000001JOSE DA SILVA        19841231     30.00   
000002JOSÉ SERRA           19500305    110.00
Leiaute do Arquivo.TXT
CODIGO, 1, 6 NOME, 7, 20 DATA, 28,8 VALOR, 36,10   
Campos da Tabela CODIGO INTEGER,
NOME VARCHAR(20),
DATA DATE,
VALOR NUMERIC(10,2)  
Estou fazendo assim...
Para CODIGO INTEGER, faço IbTableDadosCODIGO.AsInteger := StrToInt(Copy(Linha, 1,6));
Para NOME VARCHAR(20), IbTableDadosNOME.AsString := Copy(Linha,7 ,20); Para DATA DATE, IbTableDadosDATA.AsDateTime := StrToDate(Copy(Linha,34 ,2)+'/'+Copy(Linha,32 ,2)+'/'+Copy(Linha,28 ,4));
e para VALOR NUMERICO(10,2), como devo fazer?
Já fiz...
IbTableDadosVALOR.AsFloat := StrToFloat(Trim(Copy(Linha,36 ,10)));
IbTableDadosVALOR.AsCurrency := StrToCurr(Trim(Copy(Linha,36 ,10)));
... mas dá o erro... Project ImportaDados.exe raised exception class EConvertError with message ''0.00' is not a valid floating point value'.
Francisco Rodrigues

Francisco Rodrigues

Responder

Posts

09/08/2010

Wesley Yamazack

Olá amigo,

   O erro que você me mandou esta dizendo que não pode converter 0.00, pois o correto seria 0,00 . Para isso faça uma pequena alteração na forma de ler seu txt.


  StrToCurr( Trim(StringReplace(Copy(Linha,36 ,10),'.',',',[rfReplaceAll])));


Um abraço

Wesley Y
Responder

Gostei + 0

09/08/2010

Francisco Rodrigues

Ok, amigo Wesley Y. Funcionou perfeitamente. Um abraço e, muitíssimo obrigado.
Responder

Gostei + 0

09/08/2010

Wesley Yamazack

Ok Amigo,   Um abraço e até a próxima.   Att   Wesley Y
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar