Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Filtrar tabla para dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=35299)

nachito_tuc 06-09-2006 18:33:09

Filtrar tabla para dbgrid
 
Hola. Necesito filtrar una tabla, para mostrar en un dbgrid. Es una busqueda.
Tengo el siguiente código y me funciona correctamente:

Código:

dm2.tblEquipos.filter:='usuario= '+quotedstr(edtcliente.Text+'*');
Pero lo que yo necesito es que busque ya sea por el nombre o por el apellido (en el mismo campo). Digamos cualquier ocurrencia de la busqueda en el campo.
En SQL creo que se hacia con %texto% o algo parecido pero aqui al poner dos * no me muestra nada.


Espero entiendan mi duda.
Gracias, y saludos.

Nacho

Paoti 06-09-2006 19:14:03

hola nachito, antes que nada, ¿qué motor de base de datos estas usando?


la solución es no usar el "=" sino el Like, y en vez den "*" es el "%".

ejemplo:

Código:

dm2.tblEquipos.filter:='usuario like  '+quotedstr('%' + edtcliente.Text + '%');

nachito_tuc 06-09-2006 19:24:42

Re:
 
Hola. Estoy usando BDE con una tabla en access. Lo que pasa es que esa sintaxis es del metodo filter, no del SQL. (el uso de * y =)
Probe lo que me dijiste (creo que ya lo habia probado antes), pero lo unico que obtengo es un mensaje que dice "Capability not supported".
Saludos

Nacho

Caral 06-09-2006 21:45:43

Hola este es un codigo que utilizo para filtrar de una tabla (ATArticulos) con un edit un combobox y un grid.
Mi intencion es que veas el codigo de acceso para base de datos en access y te puedas dar una idea.

procedure TFBuscaArticulo.Edit1Change(Sender: TObject);
var Filtro : String;
begin
If (Edit1.Text <> '') then
begin
ATArticulos.Filtered := False;
If CBFiltro.Text = 'Código' then Filtro := 'CodParte Like '''+Edit1.Text + '*'''
else If CBFiltro.Text = 'Descripción' then Filtro := 'Descripcion Like '''+ Edit1.Text + '*'''
else If CBFiltro.Text = 'Categoría' then Filtro := 'Categoria Like '''+ Edit1.Text + '*''';
ATArticulos.Filter := Filtro;
ATArticulos.Filtered := True
end
else ATArticulos.Filtered := False;
end;

Aqui uso tres obciones de filtro: codigo, descripcion, categoria
Con solo poner la primera letra en el EDIT este va filtrando las posibles alternativas y las presenta en un grid.
Al cambiar de letra, cambia el grid y asi sucesivamente
analizalo, tal vez te sirva.
Saludos

nachito_tuc 07-09-2006 04:23:21

No funciona
 
Probe lo que me dijiste tal como lo hiciste vos pero sigo recibiendo el mensaje: "Capability not supported".
Tal vez no estamos usando la misma versión de Delphi. Yo uso la 7, o quizás el driver de Access que estoy usando no es el correcto, de todos modos gracias.
Saludos

Nacho

Caral 07-09-2006 19:55:18

Hola
Yo uso Delphi 6, ADOConnection, y en controlador Jet 4.0 OLE DB Provider.
No se si hay otros pero este sistema funciona
Saludos


La franja horaria es GMT +2. Ahora son las 01:07:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi