Fórum Erro Arithimetic exception,numeric overflow or string... #57518
22/12/2006
0
[color=red:1b1d58db30]ARITHIMETC EXCEPTION, NUMERIC OVERFLOW, OR STRING TRUNCATION[/color:1b1d58db30]
[b:1b1d58db30]Estou usando o Firebird 2.0
Lembrando que uso o CharSet Win1252[/b:1b1d58db30]
Estou usando esse codigo e esta dando o erro acima
with dm.Qsaida do begin SQL.clear; dm.qsaida.Close; sql.add(´ Select * from saidas ´); sql.add(´ where cnpjempresa starting:p_cnpjempresa and ano starting:p_ano order by sequencia desc ´); parambyname(´p_cnpjempresa´).asstring:=label1.caption; parambyname(´p_Ano´).AsString:=label2.Caption; open; DataSource1.DataSet:=DM.Qsaida; //eNR.Caption := IntToStr(dm.QSAIDA.RecordCount); end;
Outro detalhe isso soh esta ocorrendo num form em outro no mesmo programa funciona sem problemas, os dois carrego a SQL como mostrei acima.
Tambem a SQL soh abre depois que clico em um Treeview aonde tem os nomes de empresas qeu seleciono para jogar em dois labels, mais logo no primeiro clique no treeview ja ocorre o erro, e se eu persistir no erro ele acaba mostrando a SQL, porem somente depois de mostrar o erro.
Grato ajuda de todos
Adriano
Adriano_servitec
Curtir tópico
+ 0Posts
22/12/2006
Emerson Nascimento
with dm.Qsaida do begin close; // feche a query sql.clear; // depois "limpe" a instrução sql.add(´ Select * from saidas ´); sql.add(´ where cnpjempresa starting :p_cnpjempresa and ano starting :p_ano order by sequencia desc ´); parambyname(´p_cnpjempresa´).asstring:=label1.caption; parambyname(´p_Ano´).AsString:=label2.Caption; open; DataSource1.DataSet:=DM.Qsaida; //eNR.Caption := IntToStr(dm.QSAIDA.RecordCount); end;
Gostei + 0
22/12/2006
Adriano_servitec
procedure TForm6.BitBtn10Click(Sender: TObject); begin if application.messagebox(PChar(´Deseja Gravar esta Nota?´), PChar(´Incluir Dados´+Self.Caption),MB_IConquestion +MB_YesNo)=IDYES then begin with dm.QENTRADA do begin close; SQL.clear; sql.add(´ Insert Into ENTRADA (CHAVE, cnpjempresa, ano, CNPJE, CF, codigoF, basecalculo, txipi, ipi, descr, hrlcto, data) ´); sql.add(´ Values (:CHAVE, :cnpjempresa, :ano, :CNPJS, :CF, :codigoF, :P_valor, :taxa, :ipi, :descr, :hrlcto, :data) ´); ParamByName(´chave´).AsString:=label22.caption; ParamByName(´cnpjempresa´).AsString:=label20.caption; ParamByName(´ano´).AsString:=label21.caption; ParamByName(´cnpjs´).AsString:=edit1.Text; ParamByName(´cf´).AsString:=Edit3.Text; ParamByName(´codigof´).AsString:=Maskedit2.Text; ParamByName(´descr´).Value:=dbedit6.Text; svalor := stringreplace(jvedit1.text, ´.´, ´´, [rfReplaceAll]); svalor := stringreplace(svalor, ´,´, ´.´, [rfReplaceAll]); ParamByName(´P_valor´).Value:=sValor; ParamByName(´taxa´).AsString:=Edit3.Text; svalor2 := stringreplace(jvedit2.text, ´.´, ´´, [rfReplaceAll]); svalor2 := stringreplace(svalor2, ´,´, ´.´, [rfReplaceAll]); ParamByName(´IPI´).Value:=sValor2; ParamByName(´hrlcto´).Value:=Time; ParamByName(´data´).Value:=Date; try ExecSQL; dm.TRentrada.Active:=true; dm.TRentrada.Commit; //**********ATUALIZAR TABELAS************** close; SQL.clear; sql.add(´ Select * from entrada ´); sql.add(´ where cnpjempresa =:p_cnpjempresa and ano =:p_ano order by sequencia desc ´); parambyname(´p_cnpjempresa´).asstring:=label20.caption; parambyname(´p_Ano´).AsString:=label21.Caption; eNR.Caption := IntToStr(dm.Qentrada.RecordCount); dm.qentrada.open; //eNR.Caption := IntToStr(dm.QSAIDA.RecordCount); TrataButtons; BitBtn9.setfocus; sbar.SimpleText:=´Dados Incluidos´; jvedit1.text:=´´; except on E:Exception do begin dm.TRentrada.RollBack; sbar.SimpleText:=´Abortado´; ShowMessage(´Falha na Inclusão dos Dados!´#1310´ Mensagem: ´+E.Message); end; end; end; end; end;
Gostei + 0
22/12/2006
Emerson Nascimento
1 - quando você tenta gravar num campo um valor maior do que ele pode comportar. por ex.: tentar gravar ´JOSE´ num campo CHAR(1)
2 - quando você utiliza acentos numa string, mas o COLLATE utilizado no banco de dados não suporta acentos.
Gostei + 0
22/12/2006
Adriano_servitec
Sim realmente na hora de gravar tinha um campo com o varchar menor que o que ia ser gravado (falta de atençao) :oops:
Mais no primeiro post ainda nao entendi o motivo do erro, Uso em todas tabelas CharSet Win1252 e a maioria do collate win1252 e alguns Win_PTBR
Gostei + 0
27/12/2006
Adriano_servitec
Pessoal, bom dia, estou com problemas ao clicar na barra de um DBGrid, aparece o seguinte erro: [color=red:0b2b05c3cc][b:0b2b05c3cc]white of address 4D4F43000[/b:0b2b05c3cc][/color:0b2b05c3cc]
Mais isso soh ocorre dentro do dbgrid quando vou clicar para mostrar os dados contidos nele. Depois de tanto ter que usar o F9 para ir adiante apareçe outra mensagem: [color=red:0b2b05c3cc][b:0b2b05c3cc]invalid pointer operation[/b:0b2b05c3cc][/color:0b2b05c3cc]
Vi casos parecidos como o meu na hora de fechar ou abrir algum form.
Mais antes deste erro ainda tenho um treeview que tem o nome das empresas e toda vez que clico em cima de uma empresa para abrir aparece este erro
[color=red:0b2b05c3cc]ARITHIMETC EXCEPTION, NUMERIC OVERFLOW, OR STRING TRUNCATION[/color:0b2b05c3cc] :(
Este erro refere-se
[b:0b2b05c3cc]1 - quando você tenta gravar num campo um valor maior do que ele pode comportar. por ex.: tentar gravar ´JOSE´ num campo CHAR(1)
2 - quando você utiliza acentos numa string, mas o COLLATE utilizado no banco de dados não suporta acentos.[/b:0b2b05c3cc]Mais nao achei nenhum problema tanto com o collate quanto com tamanho do campo. Inclusive uso o mesmo codigo em outro form do mesmo projeto sem ter problemas.
Ja postei sobre este erro aqui no forum na parte Banco de Dados, mais ninguem respondeu, agora sinto que esse erro esta agravando os outros.
Curioso eh que isso soh ocorre com o Delphi ligado, se eu sair dele e usar o programa nao da o erro. :?:
Gostei + 0
28/12/2006
Adriano_servitec
Pois testei o mesmo projeto em outro computador e o erro nao ocorre.
Agora fica a pergunta: O que tem haver com [color=green:af18e5f0cf]ENDEREÇOS DE MEMÓRIA.[/color:af18e5f0cf], o que eh isso?
Algo com memoria do micro?
Aonde fiz o projeto foi num computador com 128MB de memoria e testei o mesmo projeto em outro micro com 256MB de memoria. Eh isso o problema? :?: :?: :?:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)