Fórum SQL - ADOQuery #296317
21/09/2005
0
Coloquei em uma aplicação um ADOQuery onde em sua propriedade SQL coloquei esse código:
select * from Tab_Edificacoes where cod_Campo like sEd+´¬´
onde cod_Campo é o compo e sEd é uma variavel para o parâmetro.
Eu gostaria de que o campo também fosse uma variavel!
Como fazer isso???
Caezar
Curtir tópico
+ 0Posts
21/09/2005
Michelli88
Voce esqueceu do ´:´
select * from Tab_Edificacoes where cod_Campo like :sEd+´¬´
mas... nao entendo... como assim o campor ser uma variavel??
Gostei + 0
21/09/2005
Caezar
Então na hora da busca quero escolher o compo em que eu vou fazer a busca!
Gostei + 0
21/09/2005
Michelli88
Se for isso, vc vai ter q ter um select pra cada um...
Gostei + 0
21/09/2005
Rogick
ADOQuery1.SQL.Add(´Select * from Tab_Edificacoes where ´ + combo.Items[combo.ItemIndex] + ´ like :sEd´´¬´´´);
Onde [i:df22aef36b]combo[/i:df22aef36b] é a combobox e [i:df22aef36b]ADOQuery1[/i:df22aef36b] é sua query(lógico né? :wink: ) onde está os campos.
Espero ter ajudado.
Gostei + 0
21/09/2005
Caezar
Tentei esse jeito e não deu muito certo!
Ele não faz nenhuma busca!
Gostei + 0
21/09/2005
Rjun
ADOQuery1.SQL.Add(´Select * from Tab_Edificacoes where ´ + combo.Items[combo.ItemIndex] + ´ like :sEd);
E quando for passar o parâmetro, faça assim:
ADOQuery1.Parameters.ParamByName(´sEd´).Value := QuotedStr(valor + ´¬´);
Gostei + 0
21/09/2005
Rogick
ADOQuery1.SQL.SaveToFile(´C:\sql.txt´);
[i:9f67b68cbd]O [u:9f67b68cbd]C:\[/u:9f67b68cbd] pode ser substituído por qq pasta de sua preferencia.[/i:9f67b68cbd]
Abra o arquivo [u:9f67b68cbd]sql.txt[/u:9f67b68cbd] gerado e veja como está saindo a query.
Ah, siga o exemplo de sql do Rjun. O meu estava errado. :lol:
Gostei + 0
22/09/2005
Caezar
Alguem pode ver o que acontece com esse código?
Estou tentando passar o campo a ser pesquisado do ComboBox(cbCampoBusca) para a variavel sCampo
procedure TformAbrir.btBuscarClick(Sender: TObject); var sCampo:string; begin dmConex.tb_Edific.SQL.Clear; dmConex.tb_Edific.SQL.Add(´Select * from Tab_Edificacoes where ´ + sCampo + ´ like :sEd´); CASE cbCampoBusca.ItemIndex OF 0:sCampo:=´cod_Laudo´; 1:sCampo:=´EmpresaSolicitante´; 2:sCampo:=´EmpresaAvalianda´; 3:sCampo:=´Cidade´ ; END; with dmConex.tb_Edific do begin close; Parameters.ParamByName(´sEd´).Value:=edPalavraBusca.Text; open; end; end;
Gostei + 0
22/09/2005
Rjun
Gostei + 0
22/09/2005
Caezar
Erro de sintaxe, operador faltando na expressão like?
Gostei + 0
22/09/2005
Rjun
Parameters.ParamByName(´sEd´).Value := QuotedStr(edPalavraBusca.Text);
Gostei + 0
22/09/2005
Caezar
Gostei + 0
22/09/2005
Rjun
Gostei + 0
22/09/2005
Caezar
Porem ele não faz a busca e quando eu faço um debug e percebo que o comando sql não recebe nenhum valor!
Gostei + 0
22/09/2005
Rjun
procedure TformAbrir.btBuscarClick(Sender: TObject); var sCampo:string; begin // Acho que você poderia por esse items no combobox e // substituir esse case // //case cbCampoBusca.ItemIndex OF // 0: sCampo := ´cod_Laudo´; // 1: sCampo := ´EmpresaSolicitante´; // 2: sCampo := ´EmpresaAvalianda´; // 3: sCampo := ´Cidade´ ; //end; sCampo := cbCampoBusca.Items[cbCampoBusca.ItemIndex]; dmConex.tb_Edific.SQL.Clear; dmConex.tb_Edific.SQL.Add(´Select * from Tab_Edificacoes where ´ + sCampo + ´ like :sEd´); // Eu não gosto de usar WITH. Veja que aqui você está usando 3 // linhas a mais. dmConex.tb_Edific.close; dmConex.tb_Edific.Parameters.ParamByName(´sEd´).Value := edPalavraBusca.Text; dmConex.tb_Edific.open; end;
Quem não recebe valor? O parâmetro sED?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)