Pesquisar na Comunidade
Showing results for tags 'EConvertError'.
Encontrado 2 registros
-
Boa tarde. Ao informar Unidades de Transporte no grupo de Outros Documentos (infOutros), e tentar carregar o XML no componente novamente, através do LoadFromFile, é disparada uma exception "EConvertError", como na mensagem de erro abaixo: Exception class EConvertError with message ''15,000</qtdRat></infUnidTransp>' is not a valid floating point value'. No XML está assim por exemplo: <infUnidTransp> <tpUnidTransp>1</tpUnidTransp> <idUnidTransp>1251</idUnidTransp> <lacUnidTransp> <nLacre>54541</nLacre> </lacUnidTransp> <qtdRat>15.000</qtdRat> </infUnidTransp> Olhando o código fonte da unit "\ACBr\Fontes\ACBrDFe\ACBrCTe\PCNCTe\pcteCTeR.pas" nas linhas 1026 e 1032 percebi que está um pouco diferente das declarações para os grupos anteriores acima (InfNF e InfNFe). Na linha 1026 a atribuição a variável "len" está comentada. Na linha 1032 está sendo passada a variável "pos3" como argumento no lugar de "len". //... // len := pos3 - pos2; (Linha 1026) // if (pos1 = 0) and (pos2 = 0) and (pos3 = 0) or (pos1 > pos3) then // qtdRat_UnidTransp := 0.0; if (pos1 < pos3) then qtdRat_UnidTransp := StringToFloatDef(Copy(sAux, pos2 + 8, pos3 -8), 0) // (Linha 1032) else qtdRat_UnidTransp := 0.0; //... Realizei um teste, removendo o comentário na linha 1026 e substituindo a variável "pos03" por "len" como argumento e parou de dar a exceção, além de que o valor ser atribuído corretamente na variável "qtdRat_UnidTransp" (antes ficava zerada). Tem algum motivo das declarações nesse bloco do InfOutros estar diferente do outros grupos (InfNF e InfNFe)? Obs.: Revisão do ACBr utilizada = 34383 Segue em anexo unit modificada com a qual fiz o teste. Obrigado pcteCTeR.pas
-
Bom Dia pessoal do Forum! Estou no processo do meu tcc e empaquei numa parte... É um Software para Granjas e estou na parte de cadastro, tenho alguns botões de novo, excluir, incluir e editar! Alguns campos para preencher e depois de preenchido quando for clicar no botão incluir é para incluir no DBGrid! Só que quando clico no Incluir ele dá um erro! Project tcc.exe raised exception class EConvertError with message ''' is not a valid integer value'. Process stopped. Use Step or Run to Continue. Após isso, quando clico no botão ok, uma linha azul vai para o dpr e marca a linha do Application.Run No banco de dados está as seguintes informações desse cadastro de Lotes: CODLOTES - INTEGER LOTE - NCHAR(80) LINHAGEM - NCHAR(20) NUMERO - INTEGER DATAALOJA - DATE INICIOSEM - DATE SEXO - CHAR(10) TOTALFEM - INTEGER PRECOFEM - INTEGER TOTALMAC - INTEGER PRECOMACH - INTEGER TIPORACAO - NCHAR(20) Vou postar também o código que está dentro do botão incluir: var sSql : String; begin sSql := 'INSERT INTO LOTES' + ' (CODLOTES, LOTE, LINHAGEM, NUMERO, DATAALOJAMENTO, INICIOSEMANA,SEXO, TOTALFEMEA, PRECOFEMEA, TOTALMACHO, PRECOMACHO, TIPORACAO)' + 'VALUES (:CODLOTES, :LOTE, :LINHAGEM, :NUMERO, :DATAALOJAMENTO, :INICIOSEMANA, :SEXO, :TOTALFEMEA, :PRECOFEMEA, :TOTALMACHO, :PRECOMACHO, :TIPORACAO) '; with ADOQueryL do begin Close; //Fecha a conexão Sql.Clear; //Limpa a query Sql.Add(sSql); Parameters.ParamByName('CODLOTES').Value := StrToInt(L_CODIGO.Text); Parameters.ParamByName('LOTE').Value := quotedstr(L_LOTE.Text); Parameters.ParamByName('LINHAGEM').Value := quotedstr(L_LINHAGEM.Text); Parameters.ParamByName('NUMERO').Value := StrToInt(L_NUMERO.Text); Parameters.ParamByName('DATAALOJAMENTO').Value := quotedstr(L_DATAALOJ.Text); Parameters.ParamByName('INICIOSEMANA').Value := quotedstr(L_INICIOSEM.Text); Parameters.ParamByName('SEXO').Value := quotedstr(L_SEXO.Text); Parameters.ParamByName('TOTALFEMEA').Value := L_TOTALFEMEA.Value; Parameters.ParamByName('PRECOFEMEA').Value := L_PRECOFEMEA.Value; Parameters.ParamByName('TOTALMACHO').Value := L_TOTALMACHO.Value; Parameters.ParamByName('PRECOMACHO').Value := L_PRECOMACHO.Value; Parameters.ParamByName('TIPORACAO').Value := quotedstr(L_TIPORACAO.Text); acaoNovo.enabled := True; acaoEditar.Enabled := True; acaoIncluir.Enabled := false; acaoExcluir.Enabled := True; try ExecSQL; except On E:Exception do begin ShowMessage('Erro na atualização da base de dados. Erro: ' + E.Message); end; end;//try except end; //with ADOQueryL end; Espero que possam me ajudar de alguma forma :/ Já não sei mais onde recorrer! E falta apenas 1 mes para a entrega x.x Obrigada.