Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 19
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por dtomeysoto Ver Mensaje
Hola amigo, resulta que el LIKE no se puede usar, obtengo el siguiente mensaje: Operation not applicable.
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:=[foNoPartialCompare];{<--incluyo la opcion 
   foNoPartialCompare, 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...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 01-02-2010 a las 16:41:58.
Responder Con Cita
  #2  
Antiguo 01-02-2010
dtomeysoto dtomeysoto is offline
Miembro
 
Registrado: dic 2005
Posts: 173
Poder: 21
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
  #3  
Antiguo 01-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 19
rgstuamigo Va por buen camino
Arrow

Solo agregar que seria mejor si tambien incluyeras la opcion foCaseInsensitive tambien. Si tienes dudas revisa la ayuda de Delphi.
Otra cosa->>Cuando estes escribiendo(Postenado) trata en lo posible no visualizar (Boton de Vista Previa) ya que esto conlleva (cuando envias tu respuesta) a tener un codigo muy feo en el foro. Si se da el caso de que quieres visualizar lo que escribiste no le des Enviar Respuesta desde ahi tan solo presiona el boton de atras en tu navegador y desde alli guardas o envias tu respuesta.
Ésto se debe a que el interprete que muestra los post , tiene un error(bug) internamente que hace que el formateo de codigo no se vea muy estético.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 01-02-2010
dtomeysoto dtomeysoto is offline
Miembro
 
Registrado: dic 2005
Posts: 173
Poder: 21
dtomeysoto Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Solo agregar que seria mejor si tambien incluyeras la opcion foCaseInsensitive tambien. Si tienes dudas revisa la ayuda de Delphi.
Otra cosa->>Cuando estes escribiendo(Postenado) trata en lo posible no visualizar (Boton de Vista Previa) ya que esto conlleva (cuando envias tu respuesta) a tener un codigo muy feo en el foro. Si se da el caso de que quieres visualizar lo que escribiste no le des Enviar Respuesta desde ahi tan solo presiona el boton de atras en tu navegador y desde alli guardas o envias tu respuesta.
Ésto se debe a que el interprete que muestra los post , tiene un error(bug) internamente que hace que el formateo de codigo no se vea muy estético.
Saludos...
Amigo, al probar tu código me salta el error Operation not applicable no se si sea porque estoy usando Paradox, o porque QDatos es una consulta (TQuery). El error se produce al asignar el valor a la propiedad Filter. Ya he probado cerrando la consulta y con la consulta abierta.

Entonces como dije anteriormente le agregué a la consulta en tiempo de diseño la línea:

Código SQL [-]
WHERE  NOMBRE LIKE '%%'

y modifiqué el código que había escrito inicialmente por:

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;

y así resolví el problema. Ya me había dado cuenta que al visualizar el post para ver como me había quedado y luego al enviarlo todo se desarreglaba.

A quién le toca arreglar ese bug????
Graciasssss
Responder Con Cita
  #5  
Antiguo 01-02-2010
dtomeysoto dtomeysoto is offline
Miembro
 
Registrado: dic 2005
Posts: 173
Poder: 21
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:=[foNoPartialCompare];{<--incluyo la opcion foNoPartialCompare, 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...
Ya lo probé y me sigue saltando el mismo error, resolví con el código que puse y añadiéndole a la consulta la siguiente línea:

Código SQL [-]
WHERE  NOMBRE LIKE '%%'
Responder Con Cita
  #6  
Antiguo 01-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 19
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por dtomeysoto Ver Mensaje
Ya lo probé y me sigue saltando el mismo error, resolví con el código que puse y añadiéndole a la consulta la siguiente línea:

Código SQL [-]WHERE NOMBRE LIKE '%%'
Estas confundiendo las cosas...una cosa son los filtros de los dataSet y muy distinta son las consulta SQL hacia el servidor..
Los filtros no deben tener la Clausula "WHERE".
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Busco mejorar el rendimiento Bkewater Windows 7 11-01-2008 19:03:53
Mejorar código. REHome .NET 0 07-08-2007 21:37:55
Mejorar un cronometro kokogua Varios 3 10-12-2006 14:12:57
Mejorar busqueda de registros y actualizacion JuanchoArg Conexión con bases de datos 2 10-05-2006 03:06:48
Mejorar metodo!! kye_z Varios 2 21-10-2004 18:56:53


La franja horaria es GMT +2. Ahora son las 23:38:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi