Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
pebk Novato


Registrado: Sábado, 21 de Abril de 2007 Mensagens: 61 Localização: Araçatuba
|
Enviada: Seg Jul 16, 2012 5:24 pm Assunto: Duvida com Opção de Filtro |
|
|
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 |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Seg Jul 16, 2012 7:33 pm Assunto: |
|
|
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 |
|
 |
pebk Novato


Registrado: Sábado, 21 de Abril de 2007 Mensagens: 61 Localização: Araçatuba
|
Enviada: Ter Jul 17, 2012 5:42 pm Assunto: |
|
|
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 |
|
 |
maizena Colaborador


Registrado: Terça-Feira, 20 de Março de 2012 Mensagens: 1497 Localização: Laguna - SC
|
|
Voltar ao Topo |
|
 |
maizena Colaborador


Registrado: Terça-Feira, 20 de Março de 2012 Mensagens: 1497 Localização: Laguna - SC
|
|
Voltar ao Topo |
|
 |
pebk Novato


Registrado: Sábado, 21 de Abril de 2007 Mensagens: 61 Localização: Araçatuba
|
Enviada: Ter Jul 17, 2012 6:41 pm Assunto: |
|
|
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 |
|
 |
|