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

Marcelo Marchionny marcelomarchionny em gmail.com
Ter Abr 24 13:15:43 -03 2007


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
>



Mais detalhes sobre a lista de discussão lista