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 13-11-2004
inexperto inexperto is offline
Miembro
 
Registrado: abr 2004
Posts: 49
Poder: 0
inexperto Va por buen camino
uso de filtros.

hola a todos ...tengo el siguiente problema con los filtros:

miTabla.Filter := QuotedStr(ComboBox1.Text) + '=' + QuotedStr(Edit1.Text+'*');

la verdad delas cosas no se como puedo hacer un filtro con estas caracteristicas...alguien que me pueda ayudar......estaria muy agradecido..
chau
Responder Con Cita
  #2  
Antiguo 13-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por inexperto
no se como puedo hacer un filtro con estas caracteristicas
¿Con cuáles características?

Como no pones qué filtro quieres hacer o que filtrado quieres lograr es difícil saber qué pasa.

De cualquier forma me parece que el uso del primer QuotedStr sobra ya que te dará un filtro del estilo:

'campo' = 'valor*'

y los nombres de campos no deben ir entrecomillados.

// Saludos
Responder Con Cita
  #3  
Antiguo 14-11-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tienes que hacer lo que te ha dicho Román, aquí te pongo el mismo ejemplo con ShowMessage - para que veas como queda armado el filtro.

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Table1.Filter:=Combobox1.Text + ' = '+QuotedStr(Edit1.Text+'*');
 ShowMessage(Table1.Filter);
 Table1.Filtered:=True;
 end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 16-11-2004
inexperto inexperto is offline
Miembro
 
Registrado: abr 2004
Posts: 49
Poder: 0
inexperto Va por buen camino
filtros y componentes zeos???

hola Marcos ¡¡¡¡

La solucion que me diste es bastante buena pero solo para tablas dbf (talvez otras mas), porque yo estoy utilizando componentes zeos en especial ZQuery y no me funciona.

este el pequeño codigo que utilizo para el filtro:

procedure TFichaCategoria.Edit1Change(Sender: TObject);
begin
if length(edit1.Text) <> 0 then
begin
DM.ZQuery1.Filter := ComboBox1.Text + ' = ' + QuotedStr Edit1.Text+'*');
Showmessage(DM.ZQuery1.Filter);
DM.ZQuery1.Filtered := true;
end
else
begin
DM.ZQuery1.Filtered := false;
end;
end;

la verdad no se que puede ser, sera que los componentes zeos no soportan lo que hago, o necesito cambiar algunas propiedades al componente Zquery para que funcione, o el codigo esta malo, no lo creo porque lo coloco en una query asoaciado a una tabla dbf y lo realiza muy bien.

espero que me des una ayudadita ¡¡¡¡
chau.
Responder Con Cita
  #5  
Antiguo 16-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Intenta cambiando

Código Delphi [-]
ComboBox1.Text + ' = ' + QuotedStr(Edit1.Text+'*');

por


Código Delphi [-]
ComboBox1.Text + ' like ' + QuotedStr(Edit1.Text+'*');

Lo acabo de probar en Zeos y, en efecto, funciona con like pero no con =. Para mi gusto esto es un error de diseño de Zeos ya que va contra el uso común de un filtro.

// Saludos
Responder Con Cita
  #6  
Antiguo 16-11-2004
inexperto inexperto is offline
Miembro
 
Registrado: abr 2004
Posts: 49
Poder: 0
inexperto Va por buen camino
Gracias ¡¡¡¡¡ funciona perfecto aunque sea un defecto de los componentes zeos

chau.
Responder Con Cita
  #7  
Antiguo 16-11-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para finalizar, creo que es muchos mas logico utilizar Like, puesto que es una aproximacion y no una igualdad.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 16-11-2004 a las 15:14:27.
Responder Con Cita
  #8  
Antiguo 16-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por marcoszorrilla
Para finalizar, creo que es muchos mas logico utilizar Like, puesto que es una aproximacion y no una igualdad.
Estoy de acuerdo en que el operador like es más lógico- y acorde a la sintaxis de SQL -mas sin embargo es contrario a lo que uno, bien o mal, espera de un filtro. La descripcion de la propiedad Filter en la ayuda de Delphi viene desde el nivel de TDataSet y se ajusta a = en lugar de like.

Aunque algunos descendientes, como TIBDataSet si no me equivoco, específicamente señalan el uso de like, muy desafortunadamente el proyecto Zeos no ha dado para un buen sistema de ayuda y de ahí estas tristes confusiones que- como inexperto puede corroborar -nos hacen perder un tiempo valioso.

// Saludos
Responder Con Cita
  #9  
Antiguo 23-01-2005
Avatar de Dragon
Dragon Dragon is offline
Miembro
 
Registrado: dic 2004
Ubicación: Cuba, Ciudad de La Habana.
Posts: 19
Poder: 0
Dragon Va por buen camino
Hola a todos:

Tengo una pregunta,¿todo esto que han explicado servira para tablas de access,
si fuera pocible indiquenme como hacerlo?
__________________
Si tienes un problema no te preocupes, porque si tiene solucion no hay de que preocuparce y si no la tiene pues menos hay que preocuparce.(De Aristoteles).

Última edición por Dragon fecha: 23-01-2005 a las 09:51:05.
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 22:09:25.


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