Campo Lookup: Pesquisar com campo lookup
Boa tarde pessoal:
tm um campo lookup (qryNOMEMARCA) ... pq eu salvo no db somente o ID da marca....
entao no grid pra mostrar no nome da marca eu ligo o campo com a qryNOMEMARCA.....
agora ... c o usuario quiser procurar a marca : ID= 10 (SKOL) por exemplo ...
como eu montaria o sql pra pesquisar a marca SKOL ....??? visto q no db so ta salvo id = 10
tm um campo lookup (qryNOMEMARCA) ... pq eu salvo no db somente o ID da marca....
entao no grid pra mostrar no nome da marca eu ligo o campo com a qryNOMEMARCA.....
agora ... c o usuario quiser procurar a marca : ID= 10 (SKOL) por exemplo ...
como eu montaria o sql pra pesquisar a marca SKOL ....??? visto q no db so ta salvo id = 10
Output
Curtidas 0
Respostas
Aroldo Zanela
17/01/2007
Colega,
Um alternativa é o uso de campos lookups que podem ser adicionados por meio do Fields Editor.
Um alternativa é o uso de campos lookups que podem ser adicionados por meio do Fields Editor.
GOSTEI 0
Output
17/01/2007
Desculpa kra .... mais naum entendo como eu faria issu ???
teria como dar uma detalhada pra mim???
tendo em vista q ja foi criado um campo lookup para mostrar o nomedamarca
o problema ta na consulta.....
aguardo retorno
teria como dar uma detalhada pra mim???
tendo em vista q ja foi criado um campo lookup para mostrar o nomedamarca
o problema ta na consulta.....
aguardo retorno
GOSTEI 0
Ruyoutor
17/01/2007
Amigo acho q assim da certo
cara tenta ai eu fiz com um banco que eu tenho aki e funcionou eu usei SQL Server, mas acredito que todos os bancos dão suporte a função ´ANY´
Se funcionar vc posta ai
vlw!
select ID from tabela dolookup where ID = ANY(select ID from tabela_q_tem_o_nome where nome = ´SKOl´)
cara tenta ai eu fiz com um banco que eu tenho aki e funcionou eu usei SQL Server, mas acredito que todos os bancos dão suporte a função ´ANY´
Se funcionar vc posta ai
vlw!
GOSTEI 0
Aroldo Zanela
17/01/2007
[quote:e63313e291=´Rodrigo Miss´]Desculpa kra .... mais naum entendo como eu faria issu ???
teria como dar uma detalhada pra mim???
tendo em vista q ja foi criado um campo lookup para mostrar o nomedamarca
o problema ta na consulta.....
aguardo retorno[/quote:e63313e291]
Colega,
Agora caiu a ficha (acho). Você quer saber como relacionar as duas tabelas numa consulta? É isso? Ou ainda não entendi?
teria como dar uma detalhada pra mim???
tendo em vista q ja foi criado um campo lookup para mostrar o nomedamarca
o problema ta na consulta.....
aguardo retorno[/quote:e63313e291]
Colega,
Agora caiu a ficha (acho). Você quer saber como relacionar as duas tabelas numa consulta? É isso? Ou ainda não entendi?
GOSTEI 0
Output
17/01/2007
Exatamente [b:77c9fcdc05]Aroldo Zanela [/b:77c9fcdc05]
pq na tabela de produtos vai ta gravado somente o id da marca
e no grid de produtos ao inves de mostrar o id da marca ele mostra o nome da marca (q eh um lookup - pega o id da marca e exibe o nome da marca)
oke eu qria saber eh como eu faço ... digamo q o user digite num edit de pesquisa o nome da marca .... como vou pesquisar por nome da marca c no db esta gravado somente o id da marca??
entende?
fiko mto grato msm c puder me ajudar... tenha uma boa tarde. ..
pq na tabela de produtos vai ta gravado somente o id da marca
e no grid de produtos ao inves de mostrar o id da marca ele mostra o nome da marca (q eh um lookup - pega o id da marca e exibe o nome da marca)
oke eu qria saber eh como eu faço ... digamo q o user digite num edit de pesquisa o nome da marca .... como vou pesquisar por nome da marca c no db esta gravado somente o id da marca??
entende?
fiko mto grato msm c puder me ajudar... tenha uma boa tarde. ..
GOSTEI 0
Ruyoutor
17/01/2007
Cara esse código que eu te passei eu acho q faz isso. Eu entendo bem o seu problema pq eu já tive ele tambem.
Esse caso vc vai usar uma subquery para consultar a tabela que tem a marca(SKOL) através do que o usuário digitar no edit, e retornar o codigo da marca para a consulta principal exibir os registros que tenham essa ID(10)
Esse caso vc vai usar uma subquery para consultar a tabela que tem a marca(SKOL) através do que o usuário digitar no edit, e retornar o codigo da marca para a consulta principal exibir os registros que tenham essa ID(10)
GOSTEI 0
Output
17/01/2007
Boa Tade [b:428bc6400b]ruyoutor[/b:428bc6400b] td joia
desculpa naum tinha visto seu post antes ... so agora fui ver ...
tentei da forma q vc flw ... fiz assim:
na execuca do projeto me retorna o seguint erro:
[b:428bc6400b]line 2: Incorrect syntax near ´SKOL´[/b:428bc6400b]
ps: uso o banco MS SQL SERVER 2000
desculpa naum tinha visto seu post antes ... so agora fui ver ...
tentei da forma q vc flw ... fiz assim:
procedure TfrmProduto.txtConsultaChange(Sender: TObject); begin qry.Close; qry.SQL.Clear; qry.SQL.Add(´SELECT ID_MARCA FROM PRODUTOS´); qry.SQL.Add(´WHERE ID_MARCA = ANY(SELECT ID FROM MARCA WHERE MARCA = ´ + ´´´´ + txtConsulta.Text + ´´´´); qry.Open; end; end;
na execuca do projeto me retorna o seguint erro:
[b:428bc6400b]line 2: Incorrect syntax near ´SKOL´[/b:428bc6400b]
ps: uso o banco MS SQL SERVER 2000
GOSTEI 0
Ruyoutor
17/01/2007
tenta assim
procedure TfrmProduto.txtConsultaChange(Sender: TObject); var Consulta: String; begin Consulta:= ´Select ID_Marca from Produtos´; Consulta:= Consulta + ´ where ID_MARCA = ANY´; Consulta:= Consulta + ´(Select ID from MARCA where MARCA = ´; Consulta:= Consulta + #39+txtConsulta.text+39; qry.Close; qry.SQL.Clear; qry.SQL.Add(Consulta) qry.Open; end; 39 vai colocar o valor do editi entre aspas na consulta preste muita atenção nos espaços, como é uma consulta muito grande vc pode se descuidar e ficar alguma coisa colada na outra. Outra coisa eu só criei a variável consulta pq ñ sei com qual query vc está trabalhando porque tem componetes query que da para inserir o codigo direto da linha desejada. Ex: query1.sql[1]:= ´codigo´; Isso é possível no ADOQuery que é o que eu estou usando no momento nesse que vc esta usando eu não sei. Acho q no seu ñ tava funcionando pq quando vc da um add ele limpa automaticamente o q está dentro da propriedade SQL não tenho certeza mais acho q sim e eu numca trabalhei com aspas igual vc colocou mas tenho certeza que com #39 vai funcionar. tentai ai qualquer coisa estamos ai vlw!
GOSTEI 0
Ruyoutor
17/01/2007
cara foi mau dei um mole aki e foi tudo no código, mas acho q dar pra entender. Muita correria é fogo rsrs
GOSTEI 0
Output
17/01/2007
kra.... fiz exatamente como vc me passou ....
da o msm erro de antes ....
to usando ADOQuery....
oke eu faço agora ....
da o msm erro de antes ....
to usando ADOQuery....
oke eu faço agora ....
GOSTEI 0
Output
17/01/2007
AHH Nem eskente deu pra entender direitinho oke tava escrito ....
soh q naum quer da certo aki kra .... sera q eu fiz coisa errada?
soh q naum quer da certo aki kra .... sera q eu fiz coisa errada?
GOSTEI 0
Aroldo Zanela
17/01/2007
Colega,
Criei um banco hipotético aqui só para servir de base para o exemplo:
Banco de dados (SQL Server 2000):
Criando um select com associação entre as tabelas que permita localizar os produtos pelo nome da marca:
Criei um banco hipotético aqui só para servir de base para o exemplo:
Banco de dados (SQL Server 2000):
/*==============================================================*/ /* Table: MARCAS */ /*==============================================================*/ create table MARCAS ( MARC_ID int not null, MARC_NOME varchar(30) not null, constraint PK_MARCAS primary key (MARC_ID) ) go /*==============================================================*/ /* Table: PRODUTOS */ /*==============================================================*/ create table PRODUTOS ( PROD_ID int not null, MARC_ID int null, PROD_DESCRICAO varchar(60) not null, constraint PK_PRODUTOS primary key (PROD_ID) ) go /*==============================================================*/ /* Index: RELATIONSHIP_1_FK */ /*==============================================================*/ create index RELATIONSHIP_1_FK on PRODUTOS ( MARC_ID ASC ) go alter table PRODUTOS add constraint FK_PRODUTOS_RELATIONS_MARCAS foreign key (MARC_ID) references MARCAS (MARC_ID) go
Criando um select com associação entre as tabelas que permita localizar os produtos pelo nome da marca:
select * from produtos inner join marcas on (produtos.marc_id = marcas.marc_id) where marcas.marc_nome =´MARCA´
GOSTEI 0
Ruyoutor
17/01/2007
Cara criei as tabela aki e testei esse código:
esse codigo foi testado no sql server 2000
sendo q no lugar das aspas e de SKOL vc coloca #39+txtconsulta
esse código que eu estou te passando foi testado e funcionou
As tabelas que eu criei forma
Produto:
ID
ID_MARCA
NOME
Marca:
ID
MARCA
select * from produto where ID_MARCA = ANY(select ID from marca where marca = ´SKOL´)
esse codigo foi testado no sql server 2000
sendo q no lugar das aspas e de SKOL vc coloca #39+txtconsulta
esse código que eu estou te passando foi testado e funcionou
As tabelas que eu criei forma
Produto:
ID
ID_MARCA
NOME
Marca:
ID
MARCA
GOSTEI 0
Output
17/01/2007
vlw pessoal :
Obrigado Aroldo Zanela,
Obrigado ruyoutor .
Aroldo Zanela, da forma q vc me passo ou testei aki e funcionou direitinho do geito q eu qria ... vlw msm kra pela força ....
ruyoutor, da forma q vc me passou naum da certo kra .... sra q eh eu q to fazendo algo errado :
to fazendo assim:
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(´select * from produtos´);
qry.SQL.Add(´where ID_MARCA = ANY(select ID from marca where marca = ´ + #39 + txtConsulta.Text + 39);
qry.Open;
end;
ele me da o msm erro
c eu tirar o 39 ele me da o erro:
Unclosed quotation mark before the character string
de qualquer forma vlw tb kra .... vlw pelas dicas
Obrigado Aroldo Zanela,
Obrigado ruyoutor .
Aroldo Zanela, da forma q vc me passo ou testei aki e funcionou direitinho do geito q eu qria ... vlw msm kra pela força ....
ruyoutor, da forma q vc me passou naum da certo kra .... sra q eh eu q to fazendo algo errado :
to fazendo assim:
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(´select * from produtos´);
qry.SQL.Add(´where ID_MARCA = ANY(select ID from marca where marca = ´ + #39 + txtConsulta.Text + 39);
qry.Open;
end;
ele me da o msm erro
c eu tirar o 39 ele me da o erro:
Unclosed quotation mark before the character string
de qualquer forma vlw tb kra .... vlw pelas dicas
GOSTEI 0