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

Tecnobyte Informática temp2 em tecnobyte.com.br
Dom Abr 22 18:05:06 -03 2007


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 





Mais detalhes sobre a lista de discussão lista