Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-05-2007
ancara ancara is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
ancara Va por buen camino
Filtros y zeos en busquedas parciales

Hola!! me he repasado el foro y he encontrado varias cosas referentes a este tema, pero ninguna me da la solucion, alguien podria ayudarme??

estoy realizando una aplicacion en delphi con mysql 5 y las zeos y no consigo que me funcionen los filtros. con odbc sí me funcionan todos los filtros pero cambie a zeos para ahorrar una capa en la conexion y ninguno funciona

tengo un formulario con un edit y un botón de búsqueda y otro formulario con un dbgrid.

la idea es insertar un campo en el edit y al pulsar el boton de busqueda se activa el filtro y realiza una busqueda parcial (A*) y en caso de existir campos coincidentes se debe mostrar el otro formulario con los datos obtenidos.

lo que yo hago es lo siguiente:

modulodatos.TBCliente.Filter:='Nombre='''+VConsultarClientenombre.nombre.Text+'''';
modulodatos.TBCliente.Filtered:=true;
if (ModuloDatos.TBCliente.eof)then
begin
modulodatos.tbcliente.Filtered:=false;
raise ENombreNoEncontrado.newInstance;
end;
formulariobusqueda.hide;
formulariodatos.show;

¿alguien puede orientarme? tambien lo he intentado con las zquery y no puedo realizar busquedas parciales o no me devuelve nada o me devuelve todos los registros.


Gracias por vuestro tiempo!!!
Responder Con Cita
  #2  
Antiguo 04-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola ancara
Para mi seria algo asi:
Código Delphi [-]
begin
modulodatos.TBCliente.Filter:='Nombre='''+VConsultarClientenombre.nombre.Text+'''';
modulodatos.TBCliente.Filtered:=true;
if (ModuloDatos.TBCliente.Filtered = true) then
begin
formulariobusqueda.hide;
formulariodatos.show;
end
else
modulodatos.tbcliente.Filtered:=false;
raise ENombreNoEncontrado.newInstance;
end;
No entiendo la necesidad de recorer la tabla con un eof en un filtro.
Saludos
Responder Con Cita
  #3  
Antiguo 04-05-2007
ancara ancara is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
ancara Va por buen camino
Gracias caral!! pero eso es justamente lo que yo tengo ¿no? le has dado la vuelta a la sentencia if. el uso que yo hago del eof es lanzar una excepción que nos avise de que no se han encontrado registros coincidentes, no recorro nada.

Última edición por ancara fecha: 04-05-2007 a las 19:14:59.
Responder Con Cita
  #4  
Antiguo 04-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y sigo pensando, para que?
Si te fijas no es precisamente lo que tienes.
Saludos
Responder Con Cita
  #5  
Antiguo 04-05-2007
ancara ancara is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
ancara Va por buen camino
Caral,tienes razón no es lo mismo, ahora me sale siempre el formulario del tdbgrid, pero me sigue dando como resultados de la búsqueda conjunto vacío ya sea con busqueda total o parcial (a*). la consulta sigue sin rescatar ningún dato ¿por qué será?

Última edición por ancara fecha: 04-05-2007 a las 19:47:19.
Responder Con Cita
  #6  
Antiguo 04-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno intentemoslo asi:
Código Delphi [-]
modulodatos.TBCliente.Filter:='Nombre Like ''' + VConsultarClientenombre.Text + '*'''';
modulodatos.TBCliente.Filtered:=true;
Con esto supongo que ( VConsultarClientenombre ) es un edit, verdad?
Saludos
Responder Con Cita
  #7  
Antiguo 04-05-2007
ancara ancara is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
ancara Va por buen camino
Cita:
Empezado por Caral
Hola
Bueno intentemoslo asi:
Código Delphi [-]modulodatos.TBCliente.Filter:='Nombre Like ''' + VConsultarClientenombre.Text + '*''''; modulodatos.TBCliente.Filtered:=true;

Con esto supongo que ( VConsultarClientenombre ) es un edit, verdad?
Saludos
Perdón , sí es un edit
Responder Con Cita
  #8  
Antiguo 04-05-2007
ancara ancara is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
ancara Va por buen camino
Smile Muchas gracias Caral!!

FUNCIONAAA!!!!que torpe soy verdad?? muxiiiiiiisimas gracias, ya me veía cambiando todas las tablas del modulo de datos de nuevo.

Muchas gracias por responder tan pronto.
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
Filtros sobre Filtros en Paradox Fabricio Tablas planas 9 03-04-2007 18:40:36
Zeos y Filtros CID Conexión con bases de datos 0 27-04-2006 04:11:57
¿Cómo calcular saldos parciales? jorge82 Conexión con bases de datos 2 02-09-2005 04:49:50
Saldos parciales Juanito-Kun SQL 3 26-08-2005 20:31:29
Filtros con Zeos vichovi Conexión con bases de datos 8 02-10-2003 02:24:57


La franja horaria es GMT +2. Ahora son las 14:51:23.


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