[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