Fórum Erro : Arithmetic exception, numeric overflow, or string truncation #401764
25/05/2011
0
Estou usando o Delphi 2006 com o FireBird 2.1, e está ocorrendo o erro : Arithmetic exception, numeric overflow, or string truncation, quando tento fazer uma pesquisa, usando a Estrutura: DBXpress, com SQLConnection, SQLDataSet, DataSetProvider e ClientDataSet...
Ocorreu o seguinte, tem um campo Integer na Tabela, e conforme a sequencia aumentou, por exemplo se pesquisar 30900, consulta normal, acima de 32000 por exemplo, ocorre o erro.
Continua aceitando a Inclusão de novos registros normal, porém ocorre este problema na Pesquisa, curiosamente estou com o mesmo problema para para fazer pesquisa com campo do tipo VARCHAR, usando o LIKE ultrapassando 8 caracteres...
Alguém já viu este problema, poderia ser alguma DLL para atualizar?
Desde já obrigado pela Atenção,
José Aparecido
Jose Aparecido
Curtir tópico
+ 0Posts
25/05/2011
Rafael Mattos
pq isso é estouro de campo.
Gostei + 0
27/05/2011
José Aparecido
Gostei + 0
27/05/2011
Rafael Mattos
Gostei + 0
31/05/2011
José Aparecido
with dmClientMovimento.cds_Lote do
begin
Close;
//Params.ParamByName('pTipoPesq').AsInteger := 6;
//Params.ParamByName('pCodigo').AsInteger := dmClientCadastro.cds_Prospect.FieldByName('PRSCODIGO').AsInteger; Params.ParamByName('pTipoPesq').AsInteger := 4;
Params.ParamByName('pDescricao').AsString := dmClientCadastro.cds_Prospect.FieldByName('PRSFONE').AsString;
Open; //Código Query ( SQLDataSet )
SELECT LO.*
FROM TMLOTE LO
WHERE ( (:pTipoPesq = 1 AND LO.TURCODIGO =:pCodigo AND LO.LOTNUMERO =:pCodLote AND LO.STFCODIGO =:pStatus)
OR (:pTipoPesq = 2 AND LO.OPECODIGO =:pCodigo AND LO.LOTNUMERO =:pCodLote AND LO.STFCODIGO =:pStatus)
OR (:pTipoPesq = 3 AND LO.LOTDATAAG <= :pData AND LO.OPECODIGO = :pCodigo AND LO.STFCODIGO = :pStatus)
OR (:pTipoPesq = 4 AND LO.LOTFONE =:pDescricao)
OR (:pTipoPesq = 5 AND LO.LOTNOME LIKE :pDescricao)
OR (:pTipoPesq = 6 AND LO.PRSCODIGO =:pCodigo)
OR (:pTipoPesq = 7 AND LO.OPECODIGO = :pCodigo AND LO.STFCODIGO = :pStatus AND ( ( LO.LOTDATAAG < :pData ) OR ( LO.LOTDATAAG = :pData AND LO.LOTHORAAG <= :pHora ) ) )
OR (:pTipoPesq = 8 AND LO.OPECODIGO = :pCodigo AND LO.STFCODIGO = :pStatus)
OR (:pTipoPesq = 0) )
ORDER BY LO.LOTDATAAG, LO.LOTHORAAG, LO.LOTNUMERO
Então, todas as Opções estão funcionando, com a excessão do que expliquei ocorre o Erro e excessão..., por exemplo a Opção = 4, funciona com números até determinada faixa de valor, superior a este, dá o erro que estamos discutindo... A Opção que tem a Clausula LIKE, só aceita até 8 Caratacteres, acima disso também dá erro... Obs.: O Campo da Pesquisa com LIKE ( Opção 5 ) é um VARCHAR(40) ; O Campo Pesquisado na Opcação 6, é TIpo Integer... Bom, é isso, obrigado pela atenção, José Aparecido
Gostei + 0
31/05/2011
Emerson Nascimento
Gostei + 0
01/06/2011
Jose Aparecido
Obrigado,
José Aparecido
Gostei + 0
16/06/2014
Guilherme Silva
Gostei + 0
16/06/2014
Guilherme Silva
Gostei + 0
22/09/2015
Denis Portas
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)