ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Duvida com Opção de Filtro

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
pebk
Novato
Novato


Registrado: Sábado, 21 de Abril de 2007
Mensagens: 61
Localização: Araçatuba

MensagemEnviada: Seg Jul 16, 2012 5:24 pm    Assunto: Duvida com Opção de Filtro Responder com Citação

Boa Tarde, Utilizo a Procedure abaixo para realizar as pesquisas, contudo necessido fazer uma pesquisa em qualquer parte do texto ou apartir do inicio idem ao comando Like do SQL passando %conteudo% o % sendo para ignorar o texto anterior ou proximo existe alguma maneira de fazer utilizando dessa forma ou qual a melhor forma para utilização?

procedure TF_CadBase.CDSSetKey(DS: TDataSet; var DBG: TDBGrid; Campo, Valor: String);
var
i : Integer;
begin
if (Trim(Valor)='') then Exit;

TClientDataSet(DS).IndexDefs.Update;
for i := 0 to TClientDataSet(DS).IndexDefs.Count - 1 do
begin
if TClientDataSet(DS).IndexDefs.Items[i].Name = Campo then
begin
TClientDataSet(DS).DeleteIndex(Campo);
end;
end;

for i := 0 to DBG.Columns.Count - 1 do
begin
if DBG.Columns[i].Field.FieldName = Campo then
DBG.Columns[i].Title.Font.Color := clRed
else
DBG.Columns[i].Title.Font.Color := clBlack;;
end;

TClientDataSet(DS).AddIndex(Campo,Campo,[],'','',0);
TClientDataSet(DS).IndexName := Campo;

TClientDataSet(DS).SetKey;
TClientDataSet(DS).FieldByName(Campo).AsString := UpperCase(Valor);

if not TClientDataSet(DS).GotoKey then
ShowMessage('Registro não Encontrado!');
end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Seg Jul 16, 2012 7:33 pm    Assunto: Responder com Citação

Boa noite pebk. Não sei se pode te ajudar, mas pra esse tipo de pesquisa eu normalmente utilizo o bom e velho Filter:
Código:
ClientDataSet1.Filter   := 'DESCRICAO like ' + QuotedStr('%' + Edit1.Text + '%');
ClientDataSet1.Filtered := True;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
pebk
Novato
Novato


Registrado: Sábado, 21 de Abril de 2007
Mensagens: 61
Localização: Araçatuba

MensagemEnviada: Ter Jul 17, 2012 5:42 pm    Assunto: Responder com Citação

O que não queria é Utilizar o Filter mas se não tiver jeito altero pro mesmo e quando tiver uma opção melhor ai altero a aplicação.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Ter Jul 17, 2012 5:57 pm    Assunto: Responder com Citação

Oia um conterraneo! Very Happy
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Ter Jul 17, 2012 5:58 pm    Assunto: Responder com Citação

Não seria mais facil fazer isso via SQL?
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
pebk
Novato
Novato


Registrado: Sábado, 21 de Abril de 2007
Mensagens: 61
Localização: Araçatuba

MensagemEnviada: Ter Jul 17, 2012 6:41 pm    Assunto: Responder com Citação

Via SQL alem de Tornar o Trafego da Rede Maior acaba onerando o Servidor do Banco dependendo da quantidade de filtros sendo executado simultaneamente com o Filter ou o FindKey o mesmo é tratado localmente pelo ClientDataSet sem Realização de Buffer de dados do servidor.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB