[firebase-br] Problema com SQL - SQL error code = -804

Pedro Braga bragaped em gmail.com
Qui Nov 29 09:44:41 -03 2012


Bom Dia, estou enfrentando um problema que consiste na seguinte situação ao
executar a SQL abaixo pelo IBExpert o mesmo executa com perfeição contudo
ao executar a mesma pelo IBDataSet ou IBQuery no delphi gerar o erro abaixo

SQL
select p.* from PRODUTOS p
 where p.cod_empresa = :cod_empresa  and p.situacao='A'
 and ( ((p.descricao like '%'|| :parametro || '%' ) or
 (p.cod_barras = substring( :parametro from 1 for 20)) or (p.cod_interno =
substring( :parametro from 1 for 20)) )
 or exists( select gp.cod_prod from grade_prod gp where gp.cod_prod =
p.cod_produto  and gp.situacao='A' and gp.cod_empresa=:cod_empresa and
 ((gp.cod_interno = substring( :parametro from 1 for 20)) or (gp.cod_barras
= substring( :parametro from 1 for 20)) or
 (gp.referencia = substring( :parametro from 1 for 20))) )
 or exists( select cb.cod_prod from cod_barras cb where cb.cod_prod =
p.cod_produto and cb.cod_empresa=:cod_empresa and
 (cb.cod_barras = substring( :parametro from 1 for 20)) ) )
order by p.descricao

Erro
raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -804
Incorrect values within SQLDA structure'.

já procurei sobre o erro porem não achei nenhuma solução em tentativa de
solucionar o problema fui alterando o SQL e ao altear os blocos co EXISTS a
mesma roda normalmente contudo preciso executar com o EXISTS e se fosse
problema de SQL o IBExpert não rodava a SQL utilizo Delphi 2010 com
componentes da aba Interbase Firebird 2.1 ou 2.5



Mais detalhes sobre a lista de discussão lista