Erro:Arithmetic exception, numeric overflow
OI pessoal esta acontecendo um erro estranho no meu sistema, antes essa rotina funcionava perfeitamente com PARADOX e Query
é uma rotina simples de filtro da uma sacada:
Segue a Rotina:
if lAbertas.Checked then begin
cEmitido := ´Não´;
end else begin
cEmitido := ´Sim´;
end;
cCateg := cCategoria.Text;
Dados.CtReceber.Sql.Clear;
Dados.CtReceber.Sql.Add(´Select * from CtReceber´);
Dados.CtReceber.Sql.Add(´WHERE (EMITIDO = :pEmitido) AND (CATEGORIA = :pCateg or :pCateg = ´´) OR (SUBCATEGORIA = :pSubCateg OR :pSubCateg = ´´)´);
Dados.CtReceber.ParamByName(´pCateg´).AsString := cCateg;
Dados.CtReceber.ParamByName(´pSubCateg´).AsString := cCateg;
Dados.CtReceber.ParamByName(´pEmitido´).AsString := cEmitido;
Dados.CtReceber.Open;
OS componentes são a IBQuery,IBUpDateSql,IBConection,IBDAtabse;
O ERRO:
Arithmetic exception, numeric overflow, or string truncation.
OBS. o erro so ocorre quando o parametro é <> de ´´
ja tentei substituir o (:pCateg = ´´) or (:pCateg IS NULL) mas tbem nao funcionou
Ja faz uns 2 meses q estou empancado nesse erro, espero q alguem possa me ajudar, ja nao sei o q fazer, obrigado!!!!
é uma rotina simples de filtro da uma sacada:
Segue a Rotina:
if lAbertas.Checked then begin
cEmitido := ´Não´;
end else begin
cEmitido := ´Sim´;
end;
cCateg := cCategoria.Text;
Dados.CtReceber.Sql.Clear;
Dados.CtReceber.Sql.Add(´Select * from CtReceber´);
Dados.CtReceber.Sql.Add(´WHERE (EMITIDO = :pEmitido) AND (CATEGORIA = :pCateg or :pCateg = ´´) OR (SUBCATEGORIA = :pSubCateg OR :pSubCateg = ´´)´);
Dados.CtReceber.ParamByName(´pCateg´).AsString := cCateg;
Dados.CtReceber.ParamByName(´pSubCateg´).AsString := cCateg;
Dados.CtReceber.ParamByName(´pEmitido´).AsString := cEmitido;
Dados.CtReceber.Open;
OS componentes são a IBQuery,IBUpDateSql,IBConection,IBDAtabse;
O ERRO:
Arithmetic exception, numeric overflow, or string truncation.
OBS. o erro so ocorre quando o parametro é <> de ´´
ja tentei substituir o (:pCateg = ´´) or (:pCateg IS NULL) mas tbem nao funcionou
Ja faz uns 2 meses q estou empancado nesse erro, espero q alguem possa me ajudar, ja nao sei o q fazer, obrigado!!!!
Reunix
Curtidas 0
Respostas
Edilcimar
21/04/2006
Vc não está trabalhando com data e tem um campo nulo no bd?
GOSTEI 0
Reunix
21/04/2006
Todos os campos do filtro são do tipo string e nenhum campo nulo :roll:
estou usando interbase 6 e o ibexpress para criar e administrar o banco.
Aguardando desesperadamente e grato desde já,esse erro me persegue a uns 2 meses ja tentei quase tudo
obg
estou usando interbase 6 e o ibexpress para criar e administrar o banco.
Aguardando desesperadamente e grato desde já,esse erro me persegue a uns 2 meses ja tentei quase tudo
obg
GOSTEI 0
Marco Salles
21/04/2006
se tem dois meses que te persiste esta dúvida , seria pretenção minha acaba-la com 10 minutos.
porem , gostaria de entender o que voce pretende com esta instrução Sql
Pelo que entendi , voce quer papresentar os registros que satisfazem a uma clausu-la Where , aonde a sua comdiçÃO É
Vamos dividir esta clausula Where em Tres subClausu-las
1)
Campo EMITIDO que tenha o valor do Parametro pEmitido ..[b:1e9518ea55] Perfeito[/b:1e9518ea55]
2)
Campo CATEGORIA que tenha o valor do paramentor pCateg Ou
:pCateg = ´´ ???????? Não entendo o que voce quis dizer para o Delphi
3)
Campo SUBCATEGORIA que tenha o valor do paramentor pSubCateg Ou
:pSubCateg = ´´ ????????Também não entendi a segunda parate desta sub-instrução da clausu-la Where :cry: :cry: :cry:
[b:1e9518ea55]Afinal o que voce quer , qual o eresultado da consulta que voce pretende[/b:1e9518ea55]
Boa sorte
porem , gostaria de entender o que voce pretende com esta instrução Sql
Pelo que entendi , voce quer papresentar os registros que satisfazem a uma clausu-la Where , aonde a sua comdiçÃO É
Dados.CtReceber.Sql.Add(´WHERE (EMITIDO = :pEmitido) AND (CATEGORIA = :pCateg or :pCateg = ´´) OR (SUBCATEGORIA = :pSubCateg OR :pSubCateg = ´´)´);
Vamos dividir esta clausula Where em Tres subClausu-las
1)
EMITIDO = :pEmitido
Campo EMITIDO que tenha o valor do Parametro pEmitido ..[b:1e9518ea55] Perfeito[/b:1e9518ea55]
2)
CATEGORIA = :pCateg or :pCateg = ´´
Campo CATEGORIA que tenha o valor do paramentor pCateg Ou
:pCateg = ´´ ???????? Não entendo o que voce quis dizer para o Delphi
3)
(SUBCATEGORIA = :pSubCateg OR :pSubCateg = ´´)´);
Campo SUBCATEGORIA que tenha o valor do paramentor pSubCateg Ou
:pSubCateg = ´´ ????????Também não entendi a segunda parate desta sub-instrução da clausu-la Where :cry: :cry: :cry:
[b:1e9518ea55]Afinal o que voce quer , qual o eresultado da consulta que voce pretende[/b:1e9518ea55]
Boa sorte
GOSTEI 0
Reunix
21/04/2006
Olá,
nessa, (SUBCATEGORIA = :pSubCateg OR :pSubCateg = ´´)´);
é para filtrar só se o parametro for <> de ´´, se for ´´ a condicao desconsidera o campo CATEGORIA do filtro, ou seja mostrar todos do campo CATEGORIA, o mesmo para o SUBCATEGORIA, quando eu usava paradox funcionava perfeitamente, agora com SQL e interbase, da esse erro, :roll:
nessa, (SUBCATEGORIA = :pSubCateg OR :pSubCateg = ´´)´);
é para filtrar só se o parametro for <> de ´´, se for ´´ a condicao desconsidera o campo CATEGORIA do filtro, ou seja mostrar todos do campo CATEGORIA, o mesmo para o SUBCATEGORIA, quando eu usava paradox funcionava perfeitamente, agora com SQL e interbase, da esse erro, :roll:
GOSTEI 0
Reunix
21/04/2006
simmm......, quando o parametro é = ´´ não da erro e filtro funciona. :lol:
GOSTEI 0
Reunix
21/04/2006
antes eu resolvia esse problema usando IF´s, mas imagine ter q testar se o usuario selecionou os paramatros para mais de 5 campos,....... :cry:
GOSTEI 0
Reunix
21/04/2006
Ainda sem solução, ajudem-me por favorrrrr :oops: [color=blue:f45e610bb2][/color:f45e610bb2]
[code:1:f45e610bb2][/code:1:f45e610bb2]
GOSTEI 0
Reunix
21/04/2006
Ainda sem solução, ajudem-me por favorrrrr :oops: [color=blue:4bc327fc46][/color:4bc327fc46]
[code:1:4bc327fc46][/code:1:4bc327fc46]
GOSTEI 0