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 por nombre (https://www.clubdelphi.com/foros/showthread.php?t=13138)

seath 06-08-2004 21:45:21

Filtrar por nombre
 
hola, estoy haciendo un pequeño programa y necesito filtrar una base de datos. necesito hacerlo por nº de factura, rut y nombre...para los dos primeros estoy listo ya q son cosas exactas, lo estoy haciendo asi...
Código:

query1.close;
query1.ParamByName('Rut').AsString:=Form6.Edit1.Text;
query1.Open;

pero buscaba al parecido al locate ya que me deja buscar el texto exacto "loCaseInsensitive" o buscar una parte de este "loPartialKey"...
cualquier ayuda se los agradeceria.
Tomás

seath 06-08-2004 21:46:42

se me olvido!!
estoy trabajndo con delphi 7 y paradox 7...
gracias
Tomás

roman 06-08-2004 21:56:19

Puedes usar el operador LIKE en tu sentencia SQL con comodines. Por ejemplo

Código SQL [-]
select * from clientes where nombre like "FERNANDEZ%'

buscará todos los clientes cuyo nombre comienza con "FERNANDEZ".

Para usarlo con parametros haces igual que con otros campos:

Código SQL [-]
select * from clientes where nombre like ":nombre'

Y sustituyes el parámetro:

Código Delphi [-]
Query1.ParamByName('nombre').AsString := 'FERNANDEZ%';

// Saludos

seath 06-08-2004 22:27:42

No me funciona!
Esto es lo que tengo en la busqueda por numero de factura

Código Delphi [-]
query1.close;
query1.ParamByName('Factura').AsString:=Form6.Edit1.Text;
query1.Open;

y esto es lo que tengo en la setencia sql....
Código SQL [-]
 select * from FacturasDB 
where Factura = :Factura

y lo puse asi....

Código SQL [-]
 
select * from FacturasDB 
 
where Factura like ":Factura'

roman 06-08-2004 22:42:39

¿Y dónde quedó el comodín?

%

// Saludos

seath 06-08-2004 23:11:01

no puedo hacerlo funcionar.....me aparece un error "Query1: Parameter 'Cliente' not found"....
no se que hacer..mi base de datos se llama "FacturasDB", el indice o columna de la base de datos en la que quiero buscar se llama "Cliente" y estoy usando un Edit para que el usuario escriba el nombre....
Creo que mi error tiene que ver con lo de SQL, pero realmente no se como hacerlo

Lepe 07-08-2004 10:59:48

Hay un par de pequeños errores, que sin duda te estan dando dolor de cabeza.
Cita:

Empezado por seath
Código Delphi [-]
query1.close;
query1.ParamByName('Factura').AsString:=Form6.Edit1.Text+'%';
query1.Open;

Código SQL [-]
 
select * from FacturasDB 
 
where Factura like :Factura

En primer lugar al edit1 le añado el comodin (como bien ha dicho Roman)
Y por otro lado, en el SQL, Factura no tienes que ponerlo entre comillas ya que de eso se encarga delphi cuando lo pasa como parámetro AsString.

Saludos y espero te resuelva todos los problemillas

Pablo Carlos 07-08-2004 17:21:47

Hola... a ver si lo que propongo te sirve...

Código Delphi [-]
procedure TdmQuerys.qBuscarDatosBeforeOpen(DataSet: TDataSet);
begin
 qBuscarDatos.ParamByName('pApellidoDesde').AsString :=
  frmBuscarDatosPersonales.eApellido.Text + '';
 qBuscarDatos.ParamByName('pApellidoHasta').AsString :=
  frmBuscarDatosPersonales.eApellido.Text + 'Zz';
end;
y en el evento onchange del edit pones esto
Código Delphi [-]
procedure TfrmBuscarDatosPersonales.eApellidoChange(Sender: TObject);
begin
 dmQuerys.qBuscarDatos.Close;
 dmQuerys.qBuscarDatos.Open;
end;

si necesitas que sea más claro... avisa :)
Saludos


La franja horaria es GMT +2. Ahora son las 18:50:38.

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