Problemas em Filtro de AdoQuery

Delphi

06/12/2006

Olá pessoal tudo bem?
Bom, to um tempo qbrando a cabeça com isso e naum consigo solicionar.
Quando ativo um filtro em AdoQuery, ele esta me retornando esta msg de erro:

[b:f13b558f13]´O Item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.´[/b:f13b558f13]

Já tentei de tudo!

O q eu faço eh o seguinte

Qr_Consulta.Filter:= ´(Gravadora.Gravadora) = ´ + intToStr(DbLcb_Gravadora.KeyValue);


Será que alguém tem idéia de como me ajudar?


K1t4r0

K1t4r0

Curtidas 0

Respostas

K1t4r0

K1t4r0

06/12/2006

[b:49ed744fc1]Alguém?
plz?[/b:49ed744fc1]


GOSTEI 0
Leorez

Leorez

06/12/2006

Coloq somento o nome do campo.

Exe:

dmExt.qryBusca.Filtered:= False;
dmExt.qryBusca.Filter := ´ Nome = ´ + ´Leonardo´
dmExt.qryBusca.Filtered:= True;


GOSTEI 0
K1t4r0

K1t4r0

06/12/2006

Coloq somento o nome do campo. Exe: dmExt.qryBusca.Filtered:= False; dmExt.qryBusca.Filter := ´ Nome = ´ + ´Leonardo´ dmExt.qryBusca.Filtered:= True;


O Problema, eh o seguinte!
Minha query, tem 3 campos iguais de tabelas diferentes!
e justo ali, eu passo um parametro numérico =/
Entao eu preciso chamar Tabela.Campo = 4, por exemplo.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

06/12/2006

acho que isso não dá certo, não. o filter irá trabalhar com os campos do resultset e não da instrução sql.

dê apelidos para os campos. algo assim:
select
  tab1.gravadora gravadora1,
  tab2.gravadora gravadora2,
  tab3.gravadora gravadora3
from
  tabela1 tab1
left join
  tabela2 tab2 on tab2.id = tab1.id
left join
  tabela3 tab3 on tab3.id = tab1.id
where
  [....]

assim você deverá referenciar o apelido, e não o nome físico no banco:
Qr_Consulta.Filter:= ´Gravadora1 = ´ + IntToStr(DbLcb_Gravadora.KeyValue);



GOSTEI 0
K1t4r0

K1t4r0

06/12/2006

Obrigado Emerson!
Irei tentar


GOSTEI 0
POSTAR