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

Kleber Caneva kdcc em terra.com.br
Seg Abr 23 10:32:14 -03 2007


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 ----- 
From: "Tecnobyte Informática" <temp2 em tecnobyte.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Sunday, April 22, 2007 6:05 PM
Subject: [firebase-br] Erro ao comparar parâmetro com string vazia


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

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 20/04/2007 / Versão: 
5.1.00/5014
Proteja o seu e-mail Terra: http://mail.terra.com.br/






Mais detalhes sobre a lista de discussão lista