Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Consulta Like '%'+ :parametro + '%' (https://www.clubdelphi.com/foros/showthread.php?t=59326)

klionsis 22-08-2008 16:57:00

Consulta Like '%'+ :parametro + '%'
 
Hola amigos, estoy intentando algo parecido a lo que plantea CarlaOnti aqui
pero no con mysql sino con una tabla dbf. Intente hacer lo que le aconsejan los muchas en ese link pero no me funciona. Tengo que hacerlo pasando parámetros, no puedo hacerlo de otra maneras. He visto en el foro que una de las ideas es asignado la consulta desde la propiead text o sql de tquery, pero eso a mi no me sirve, si no que debo pasar los parametros al tquery y desde el mismo colocar algo como:
...
Where
cadena like % :pCadena %

Alguien me da una mano?

Gracias.

BlueSteel 22-08-2008 17:30:25

Hola

solo tienes que vincular las sentencias a tu consulta (Query)

por ejemplo, aqui estoy realizando un filtro en tablas .dbf que estan asignada a un Query por medio de un parametro..

Código Delphi [-]
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From BxS Where Ficha=:VarFiltro');
Query1.Params[0].AsString:=SFicha.Text;
Query1.ExecSql;


el siguiente ejemplo estaria para realizar un filtro con la sentencia Like
Código Delphi [-]
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From Cliente');
Query1.Sql.Add('Where Cli_Rut Like'+QuotedStr('%'+vBus.Text+'%'))
Query1.Params[0].AsString:=SFicha.Text;
Query1.ExecSql;


Espero que esto te sirva

Salu2:p:D

klionsis 22-08-2008 18:41:48

Gracias BlueSteel por tu respuesta, pero eso no es justamento lo que quiero cambiar. Yo no quiero vincular la sentencia a la consulta, si no lo que quiero es pasar el parámetro:

Query1.Close;
Query1.Sql.Clear;
Query1.ParamsbyName['pCodigo'].AsString:='123';
Query1.Open;


y en la propiedad "Sql" del componente tQuery ingresar la consulta:

Select *
from Linea
Where
Codigo like % :pCodigo %


pero esto no me funciona. Espero ser entendible.

Gracias.

egostar 22-08-2008 18:48:00

Hola

Tal vez así:

Código Delphi [-]
Query1.Close;
Query1.Sql.Clear;// Hay que tener cuidado con esto que haces, si limpias el query, no veo que lo estes escribiendo de nuevo, yo lo omitiria
Query1.ParamsbyName['pCodigo'].AsString:='%'+'123'+'%';
Query1.Open;

Código SQL [-]
Select * from Linea
Where Codigo like :Codigo

Salud OS

PD, usa las etiquetas para que el código se vea mejor.

klionsis 22-08-2008 19:23:47

Sabés egostar que probé esa alternativa y tampoco me funciono :(.
No me daba pelota en cuanto el filtro que tenia que realizar...

egostar 22-08-2008 19:28:31

Cita:

Empezado por klionsis (Mensaje 308862)
Sabés egostar que probé esa alternativa y tampoco me funciono :(.
No me daba pelota en cuanto el filtro que tenia que realizar...

Te da un error o que es lo que te dice.

Salud OS

klionsis 23-08-2008 01:29:37

Gente, me funciono con la ultima alternativa que me dieron, evidentemente estaba haciendo algo mal... muchas gracias. :)


La franja horaria es GMT +2. Ahora son las 23:18:56.

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