Re: [firebase-br] Erro ao comparar parâmetro com string vazia

Nelio Vieira neliodv em gmail.com
Qua Abr 25 11:39:30 -03 2007


Tente desta forma, com parenteses a mais:

WHERE ((:CodigoInicial = '''') OR (Produto.Codigo >= :CodigoInicial))


Em 24/04/07, Marcelo Marchionny <marcelomarchionny em gmail.com> escreveu:
>
> Em vez de fazer assim
>
> Q.ParamByName('CodigoInicial').AsString := ''; { Executa normal }
> Q.ParamByName('CodigoInicial').AsString := '1'; { Retorna erro }
>
> Tenta fazer assim
>
> Q.ParamByName('CodigoInicial').Value := ''; { Executa normal }
> Q.ParamByName('CodigoInicial').Value := '1'; { Retorna erro }
>
> Marcelo Marchionni
>
>
> Em 24/04/07, Tecnobyte Informática <temp2 em tecnobyte.com.br> escreveu:
> >
> > Não, o campo código é VARCHAR(15).
> >
> > Atenciosamente.
> >
> > Daniel P. Guimarães
> > Tecnobyte Informática
> >
> > Quer uma agenda no seu computador?
> > Pegue sua cópia GRÁTIS em www.tecnobyte.com.br
> >
> >
> > ----- Original Message -----
> >
> > Provavelmente pe o Campo Codigo é do tipo Numerico..
> >
> > Tente utiliza assim:
> >
> > WHERE (:CodigoInicial = 0 OR Produto.Codigo >= :CodigoInicial)
> >
> > E passe assim:
> >
> > Q.ParamByName('CodigoInicial').AsString := 0;
> > Q.ParamByName('CodigoInicial').AsString := 1;
> >
> > []´s
> >
> > Kléber Caneva
> >
> > ----- Original Message -----
> >
> > Estou obtendo um erro ao tentar usar este esquema abaixo para passar
> > parâmetros opcionais ao Firebird.
> >
> > WHERE (:CodigoInicial = '''' OR Produto.Codigo >= :CodigoInicial)
> >
> > Se eu passo uma string vazia para o parâmetro CodigoInicial o SQL roda
> > normalmente, mas se passo qualquer outra string ocorre um erro.
> >
> > Q.ParamByName('CodigoInicial').AsString := ''; { Executa normal }
> > Q.ParamByName('CodigoInicial').AsString := '1'; { Retorna erro }
> >
> > A mensagem de erro é esta:
> >
> > ---
> > Dynamic SQL Error
> > SQL error code = -303
> > arithmetic exception, numeric overflow, or string truncation.
> > ---
> >
> > Alterando o SQL para este abaixo o erro não acontece:
> > WHERE (:CodigoInicial = CAST('''' AS VARCHAR(1)) OR Produto.Codigo >=
> > :CodigoInicial)
> >
> > Isto seria um bug do Firebird?
> >
> > Estou usando Firebird 2.0 + IBX 6.08 + Delphi 6 + Windows XP SP2.
> >
> > Atenciosamente.
> >
> > Daniel P. Guimarães
> > Tecnobyte Informática
> > www.tecnobyte.com.br
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
--------------------------------
Nélio Diniz Vieira (ndvsky)



Mais detalhes sobre a lista de discussão lista