Ver Mensaje Individual
  #7  
Antiguo 01-02-2010
dtomeysoto dtomeysoto is offline
Miembro
 
Registrado: dic 2005
Posts: 173
Reputación: 19
dtomeysoto Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Bueno se me olvido decirte que incluyas la opcion foNoPartialCompare en la propiedad FilterOptions de tu DataSet (QDATOS) Lo puedes hacer en tiempo de Diseño para no hacerlo desde codigo. Hahh y por si las dudas, cuando se esta filtrando con Like en un DataSet no se usa el caracter '%' de porcentage sino el '*' Asterisco. Por favor no confundir con las consultas SQL que se hace aun servidor de Base de Dato.
Tu codigo quedaria asi:

Código Delphi [-]procedure TForm1.eBuscarTextoChange(Sender: TObject); begin QDATOS.Filtered:=False;//Deshabilito el filtro QDATOS.FilterOptions:=[foPartialCompare];{<--incluyo la opcion foPartialCompare, OJO si ya se hizo ésto en tiempo de diseño ésta linea no es necesaria} QDATOS.Filter:='NOMBRE LIKE ''*'+eBuscarTexto.Text+'*'''; QDATOS.Filtered:=True; //Habilito el filtro nuevamente end;

.
Pruebalo...
Yo mismo no me había quedado conforme y me puse a leer un poquito más y logré lo que quería con el siguiente código:

Código Delphi [-]
  QDATOS.Close;

  if Length(eBuscarTexto.Text) > 0 then
    QDATOS.SQL[2] := 'WHERE NOMBRE LIKE ''%' + eBuscarTexto.Text + '%'''
  else
    QDATOS.SQL[2] := 'WHERE NOMBRE LIKE ''%%''';

  QDATOS.Open;


Ahora déjame analizar el que escribiste a ver si resulta. Gracias por tu preocupación y dedicación.
Responder Con Cita