Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-09-2018
the walrus the walrus is offline
Miembro
NULL
 
Registrado: abr 2018
Posts: 66
Poder: 7
the walrus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Para orientarnos mejor sobre el problema, ¿ podrías poner la parte del código donde aplicas el filtro y la parte donde lo borras ?

Saludos
el codigo que utilizo es el mismo publicaste y con respecto de borrar el filtro me refiero cuando realizo una busqueda en el edit1 por ejemplo busco el registro con nombre 'pepe' realiza la búsqueda pero cuando borro por completo del edit1 me aparece el error que te comente antes.
Responder Con Cita
  #2  
Antiguo 18-09-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Ahora entiendo..., podrías hacer:
Código Delphi [-]
...
var
  DS: TDataSet;
begin
  if Edit1.Text > '' then
  begin
    DS := DataSource1.DataSet;
    DS.Filtered := False;
    DS.Filter   := 'NOMBRE LIKE ' + QuotedStr(Edit1.Text + '%');
    DS.Filtered := True;
  end;  { ( opcional ) 
  else
    MessageBeep(MB_ICONERROR); }
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 18-09-2018
the walrus the walrus is offline
Miembro
NULL
 
Registrado: abr 2018
Posts: 66
Poder: 7
the walrus Va por buen camino
lo pude solucionar de esta forma

Código Delphi [-]
ADOQuery1.Close;
    ADOQuery1.SQL.Text :='Select * FROM mitabla WHERE nombre like '+ QuotedStr(edit1.text+'%');
    ADOQuery1.Open;
    ADOQuery1.Filtered := true;

gracias por sus respuestas
Responder Con Cita
  #4  
Antiguo 18-09-2018
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola


Si vas a filtrar usando SQL ya no es necesario usar la propiedad filter.


Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #5  
Antiguo 18-09-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por the walrus Ver Mensaje
lo pude solucionar de esta forma

Código Delphi [-]
ADOQuery1.Close;
    ADOQuery1.SQL.Text :='Select * FROM mitabla WHERE nombre like '+ QuotedStr(edit1.text+'%');
    ADOQuery1.Open;
    ADOQuery1.Filtered := true;

gracias por sus respuestas
En ese caso sería mejor que parametrices la consulta,
Código Delphi [-]
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := 'SELECT * FROM MITABLA WHERE NOMBRE LIKE :PARAM';
  ADOQuery1.Parameters.ParamByName('PARAM').Value := Edit1.Text + '%';
  ADOQuery1.Open;
para evitar la inyección SQL.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 27-09-2018
the walrus the walrus is offline
Miembro
NULL
 
Registrado: abr 2018
Posts: 66
Poder: 7
the walrus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Ahora entiendo..., podrías hacer:
Código Delphi [-]
...
var
  DS: TDataSet;
begin
  if Edit1.Text > '' then
  begin
    DS := DataSource1.DataSet;
    DS.Filtered := False;
    DS.Filter   := 'NOMBRE LIKE ' + QuotedStr(Edit1.Text + '%');
    DS.Filtered := True;
  end;  { ( opcional ) 
  else
    MessageBeep(MB_ICONERROR); }
end;

Saludos
tengo una duda tdataset es un adodataset
Responder Con Cita
  #7  
Antiguo 27-09-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por the walrus Ver Mensaje
tengo una duda tdataset es un adodataset
TDataSet es la clase base para todos los componentes de acceso a datos: TDataSet.

Es decir que cualquiera (o todas) de las siguientes asignaciones son válidas:
Código Delphi [-]
...
var
  DS : TDataSet;
begin
  // BDE
  DS := Query1;
  DS := Table1;
  // ADO
  DS := ADOQuery1;
  DS := ADOTable1;
  // IBX
  DS := IBQuery1;
  DS := IBDataSet1;
  // dbExpress
  DS := SQLQuery1;
  DS := SQLTable1;
  ...


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 27-09-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Más claro, imposible
Responder Con Cita
  #9  
Antiguo 27-09-2018
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,


en otro hilo ya se estuvo comentando como hacer consultas a los datos de una hoja excel. Puede que el filter te funcione si lo cambias y lo pones de la siguiente manera.


Código Delphi [-]
Adoquery1.Filtered:=false;
Adoquery1.Filter:='[Hoja1$].[Nombre] LIKE '+quotedstr(Edit1.Text+'%');
Adoquery1.Filtered:=true;


Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #10  
Antiguo 28-09-2018
the walrus the walrus is offline
Miembro
NULL
 
Registrado: abr 2018
Posts: 66
Poder: 7
the walrus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.


TDataSet es la clase base para todos los componentes de acceso a datos: TDataSet.

Es decir que cualquiera (o todas) de las siguientes asignaciones son válidas:
Código Delphi [-]
...
var
  DS : TDataSet;
begin
  // BDE
  DS := Query1;
  DS := Table1;
  // ADO
  DS := ADOQuery1;
  DS := ADOTable1;
  // IBX
  DS := IBQuery1;
  DS := IBDataSet1;
  // dbExpress
  DS := SQLQuery1;
  DS := SQLTable1;
  ...


Saludos
si, gracias por el concepto y el material
tengo un pequeño problema se trata de filtrar registros mi problema es el siguiente cuando escribo una letra en el edit1 por ejemplo la letra 'c' me muestra los registros con la letra c pero cuando borro la letra del edit1 la grilla no me muestra todos los registros el código que uso es este
Código Delphi [-]
begin
  if Edit1.Text > '' then
  begin
     datasource.DataSet.Filtered := false;
     datasource.DataSet.Filter := 'nombre like '+ QuotedStr(edit1.text+'%');
     datasource.DataSet.Filtered := true;
  end;


end;
en este caso estoy intentando filtrar registros de tres tablas
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Más claro, imposible
(y)
Cita:
Empezado por ElDioni Ver Mensaje
Hola,


en otro hilo ya se estuvo comentando como hacer consultas a los datos de una hoja excel. Puede que el filter te funcione si lo cambias y lo pones de la siguiente manera.


Código Delphi [-]
Adoquery1.Filtered:=false;
Adoquery1.Filter:='[Hoja1$].[Nombre] LIKE '+quotedstr(Edit1.Text+'%');
Adoquery1.Filtered:=true;


Saludos.
cambie de gestor de base de datos ahora uso MS ACCESS
Responder Con Cita
  #11  
Antiguo 18-09-2018
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Entonces validas si el edit tiene valor.

Código Delphi [-]
if Length(Trim(Edit.text)) > 0 then
begin
  //Acá aplicas el filtro como ya te explicaron
end
else
  Dataset.Filtered := False;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Filtrar registros entre 2 fechas wilcg Conexión con bases de datos 2 15-03-2015 05:41:22
Filtrar registros por criterios wilcg SQL 2 22-08-2014 18:53:25
filtrar registros en rxMemoryData peccatum Varios 7 10-09-2012 01:57:00
Filtrar Registros entre fechas capitan_nemo Tablas planas 1 02-04-2007 08:12:55
Filtrar registros de Access 2000 con SQL camelumi SQL 1 02-04-2004 19:16:37


La franja horaria es GMT +2. Ahora son las 14:15:18.


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