Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2005
mrmago mrmago is offline
Miembro
 
Registrado: dic 2005
Posts: 13
Poder: 0
mrmago Va por buen camino
porque no me reconoce los caracteres "*" ni "%" cuando filtro

estoy programando en Delphi, BD paradox y estoy tratando de filtrar en una tabla, utilizando el codigo
Table1.Filter := 'DESC_1 like *'+ edit3.text+'*';
Table1.filtered := true;

o

Table1.Filter := 'DESC_1 like %'+ edit3.text+'%';
Table1.filtered := true;

pero no me reconoce los caracteres, como le puedo hacer para solucionar esto
Responder Con Cita
  #2  
Antiguo 28-12-2005
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 146
Poder: 20
aledieb Va por buen camino
porque ...

El "like" es un comando de SQL, y los filtros de paradox, hasta donde se, solo pueden utilizar >, <, =, >= y <=

Te combiene utilizar un TQuery

Código:
 
Query1.close;
Query1.sql.clear;
Query1.sql.add('Select * from tutabla');
Query1.sql.add('where DESC_1 like %'+edit3.text+'%');
Query1.open;
Espero que te sirva
__________________
Suerte
Alejandro
Responder Con Cita
  #3  
Antiguo 28-12-2005
mrmago mrmago is offline
Miembro
 
Registrado: dic 2005
Posts: 13
Poder: 0
mrmago Va por buen camino
Gracias alejandro, ya lo intente pero no me funciono, me manda el mensaje
Invalid use or keymord
Token: like
Line Number:2

no se que hacer en este caso, alguna sugerencia?
Responder Con Cita
  #4  
Antiguo 28-12-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 20
lpmlpm Va por buen camino
lo que va despues del Like debe ir entrecomillado

Código Delphi [-]
Query1.sql.add('where DESC_1 like "%'+edit3.text+'%"');

igual prueba usando CONTAINING en vez del LIKE y omite los '%' en la sentencia.
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #5  
Antiguo 28-12-2005
mrmago mrmago is offline
Miembro
 
Registrado: dic 2005
Posts: 13
Poder: 0
mrmago Va por buen camino
pues tampoco, ahora me dice
line number: 1

y tambien lo probe con containing
Responder Con Cita
  #6  
Antiguo 28-12-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 20
lpmlpm Va por buen camino
porque no pones exactamente que código estas usando???... sorry no habia visto que usas Paradox (el containing solo funciona en Firebird/Interbase), pero el LIKE funciona muy bien con Paradox algun error debes tener en como estas formulando el query como para que no te este funcionando
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #7  
Antiguo 28-12-2005
mrmago mrmago is offline
Miembro
 
Registrado: dic 2005
Posts: 13
Poder: 0
mrmago Va por buen camino
ya me corrio no me marca errores, pero en el DBGrid me da toda la tabla, no me filtra
Responder Con Cita
  #8  
Antiguo 28-12-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 20
lpmlpm Va por buen camino
y esperas que nosotros adivinemos porque no es que te filtra??... si somos medio psiquicos algunas veces pero no confies demasiado en nuestros poderes extrasensoriales, sin que nos proveas de la query o el código que estas utilizando dificilmente te podremos ayudar aqui.

Esto me funciona perfecto desde el SQLExplorer sobre el alias DBDemos que es de Paradox:
Código SQL [-]
select *
from country
where Name Like "%na%"
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #9  
Antiguo 29-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Prueba a utilizar comillas simples en lugar de dobles:

Código Delphi [-]
 Str := 'where DESC_1 like ' + QuotedStr('%' + Edit3.Text + '%');
 Query1.sql.add(Str);

De forma que la sentancia final quede:

...Where DESC_1 like '%texto%'

Suponiendo que texto sea lo que hay en Edit3.Text.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 27-01-2006
sanz sanz is offline
Miembro
 
Registrado: ene 2006
Posts: 11
Poder: 0
sanz Va por buen camino
Cool Ayuda

Hola lei tu codigo, y lo puse en practica pero el problema es que cuando escribo la primera letra no me cambia nada solo cuando escribo la segunda letra estoy utilizando un filtro en el evento onkeypress pero tengo ese problema espero me puedas ayudar ya espero su respuesta lo mas antes posible se los agradeceria
__________________
Sanz
Responder Con Cita
  #11  
Antiguo 27-01-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
Por que no pruebas usar algo como esto, deja que delphi se encargue de todas las conversiones y demás:

Código Delphi [-]
var
  Tabla: TQuery;
begin
  Tabla := TQuery.Create();
  try
    Tabla.Close;
    Tabla.Clear;
    {Checate que le estamos enviando un parametro a la consulta por medio de los dos puntos ( : ) llamado VALOR}
    Tabla.Add('SELECT * FROM tutabla WHERE campon LIKE :VALOR');
    
   {Ahora le enviamos el valor a ese parametro, si es cadena usa asString, si es entero asInteger, etc}
    Tabla.ParamByName('VALOR').asString := '%' + Edit1.Text + '%';
    Tabla.Open;
  finally
    Tabla.Free;
  end;
end;

Creo que es mejor el armado de consultas de esta manera debido a que evitas tanto concatenado de información.

Espero haberte ayudado en algo... suerte.

Última edición por cuburu fecha: 27-01-2006 a las 05:24:14.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:48:17.


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
Copyright 1996-2007 Club Delphi