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