Fórum Erro:Arithmetic exception, numeric overflow #319702

21/04/2006

0

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!!!!


Reunix

Reunix

Responder

Posts

22/04/2006

Edilcimar

Vc não está trabalhando com data e tem um campo nulo no bd?


Responder

Gostei + 0

22/04/2006

Reunix

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


Responder

Gostei + 0

22/04/2006

Marco Salles

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 É

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


Responder

Gostei + 0

22/04/2006

Reunix

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:


Responder

Gostei + 0

22/04/2006

Reunix

simmm......, quando o parametro é = ´´ não da erro e filtro funciona. :lol:


Responder

Gostei + 0

22/04/2006

Reunix

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:


Responder

Gostei + 0

23/04/2006

Reunix

Ainda sem solução, ajudem-me por favorrrrr :oops: [color=blue:f45e610bb2][/color:f45e610bb2]
[code:1:f45e610bb2][/code:1:f45e610bb2]



Responder

Gostei + 0

23/04/2006

Reunix

Ainda sem solução, ajudem-me por favorrrrr :oops: [color=blue:4bc327fc46][/color:4bc327fc46]
[code:1:4bc327fc46][/code:1:4bc327fc46]



Responder

Gostei + 0

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

Aceitar