Fórum Filter no Query #378885
04/06/2010
0
alguém sabe dizer como deve ser escrito o comando numa Query utilizando o filter para que o resultado seja igual a este comando: QryCli.SQL.Add('Select * from clientes where nome like ' + QuotedStr(EdtPesquisa.Text + '%')) ? Já tentei de várias formas obter o mesmo resultado desta linha de comando usando o filter, mas não consigo. Usando o SQL, posso digitar num edit um nome em maiusculas ou minusculas que o resultado aparece corretamente. Infelizmente, o mesmo não ocorre com o filter. Se alguém puder me ajudar, agradeço muito.
Simone Grandini
Curtir tópico
+ 0Post mais votado
07/06/2010
Carlos Mazzi
Gostei + 1
Mais Posts
04/06/2010
Marco Salles
Gostei + 0
04/06/2010
Simone Grandini
Gostei + 0
05/06/2010
Lartedesign
ADOQuery1.SQL.ADD(\'WHERE UPPER(NOME) LIKE UPPER(\'+QuotedStr(\'%\'+Edit1.Text+\'%\')+\')\');
Gostei + 0
07/06/2010
Simone Grandini
no meu caso, preciso usar mesmo o FILTER. Aí é que está o problema: não sei a sintaxe certa do comando pra que o resultado seja igual ao sql do comando Query.SQL.ADD('Select * from clientes where nome like ' + QuotedStr(EdtPesquisa.Text + '%')'), que eu mostrei no post anterior. Mas agradeço mesmo assim pela ajuda.
Gostei + 0
07/06/2010
Marco Salles
no meu caso, preciso usar mesmo o FILTER. Aí é que está o problema: não sei a sintaxe certa do comando pra que o resultado seja igual ao sql do comando Query.SQL.ADD('Select * from clientes where nome like ' + QuotedStr(EdtPesquisa.Text + '%')'), que eu mostrei no post anterior. Mas agradeço mesmo assim pela ajuda.
Gostei + 0
07/06/2010
Marco Salles
no meu caso, preciso usar mesmo o FILTER. Aí é que está o problema: não sei a sintaxe certa do comando pra que o resultado seja igual ao sql do comando Query.SQL.ADD('Select * from clientes where nome like ' + QuotedStr(EdtPesquisa.Text + '%')'), que eu mostrei no post anterior. Mas agradeço mesmo assim pela ajuda.
TipoSearch = (tpMaior,tpMenor,TpIgual,TpFim,TpInicio,TpAll); [/CODE]
procedure FiltrarDataSet(cDataSet:TDataSet;cField,pesquisa:String;cTipoSearch: TipoSearch );
var
strFiltro:String;
begin
cDataSet.Filtered:=false;
case cTipoSearch of
//todos os Maiores e iguais ao o Texto ...
tpMaior:strFiltro:=cField+' > '+QuotedStr(Pesquisa);
//Todos os Menores do Texto
tpMenor:strFiltro:=cField+' < '+QuotedStr(Pesquisa);
//pesquisar igaul ao Texto
TpIgual:strFiltro:=cField+' like '+QuotedStr(Pesquisa);
//pesquisar no Inicio do Texto
tpInicio:strFiltro:=cField+' like '+QuotedStr(Pesquisa+'%');
//pesquisar no Fim do Texto
tpFim:strFiltro:=cField+' like '+QuotedStr('%'+Pesquisa);
//em qualquerlugar no Texto
tpAll:strFiltro:=cField+' like '+QuotedStr('%'+Pesquisa+'%');
end;
cDataSet.Filter:=strFiltro;
cDataSet.Filtered:=true;
end;
procedure TForm3.Button1Click(Sender: TObject); var cTipoSearch: TipoSearch; begin cds.Filtered:=false; case RadioGroup1.ItemIndex of 0:cTipoSearch:=tpMaior; //todos os Maiores e iguais ao Texto 1:cTipoSearch:=tpMenor; //Todos os Menores do Texto 2:cTipoSearch:=tpIgual; //pesquisar igaul ao Texto 3:cTipoSearch:=tpInicio; //pesquisar no Inicio do Texto 4:cTipoSearch:=tpFim; //pesquisar no Fim do Texto 5:cTipoSearch:=tpAll; //em qualquerlugar no Texto end; //Aqui fiz para Testar uma Pesquisa com Filter usando o CAMPO << NAME >> Da Tabela COUNTRY //e Passei um Texto De Um EDIT chamado edtPesquisa... Entende Isto ?????????????????? FiltrarDataSet(cds,'Name',edtPesquisa.Text,cTipoSearch); end;
Gostei + 0
07/06/2010
Carlos Mazzi
Gostei + 0
07/06/2010
Marco Salles
Gostei + 0
07/06/2010
Marco Salles
Gostei + 0
08/06/2010
Simone Grandini
eu conheço a função QuotedStr. Mas como disse o Marco, não é isso que eu quero. Usando essa função numa instrução sql de uma query, realmente funciona. Mas eu estou usando o filter e com ele a sintaxe é outra. É isso que eu não estou conseguindo fazer. Por exemplo, eu posso digitar um nome em caixa alta ou baixa, ou apenas colocar em caixa alta a primeira letra do nome, que o filtro não ocorre. Pelo contrário, o dbgrid fica em branco como se não houvesse registro algum com o nome digitado. Sei que deve ser uma coisa boba de se resolver, mas estou quebrando a cabeça pra encontrar uma solução. Agradeço pela ajuda de vcs.
Gostei + 0
08/06/2010
Simone Grandini
Gostei + 0
08/06/2010
Marco Salles
Gostei + 0
30/06/2010
Carlos Mazzi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)