Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2013
Daniel10 Daniel10 is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 24
Poder: 0
Daniel10 Va por buen camino
buscar registro, ADOTable

Hola a todos, tenog esta dua...

Quiero hacer una busqueda incremental, tengo una base datos, y deseo buscar un campo, apellido, nombre, numero identidad o lo que sea..

* Un dbgrid donde se muestra toda la base datos
* un Edit
* y chekbox o otra cosa, para seleccionar el campo a filtrar/buscar (APELLIDO, NOMBRE, CIUDAD, NUMERO)

quisiera que cuando se va escribiendo el campo a buscar, presiono la primer letra y en el dbgrid se borre todas las demas palabras que no empiecen con esa letra, lugo continuo escribiendo pongo la otra eltra, y se borre todas las palabras que no coincidan conesas dos priemras letras, y asi sucecivamente. A media que voy escribiendo se van borrando lo que no coincidan

Desde hace ratoq eu estoy buscando la manera y nunca encuentro como hacerlo, si las hay de otras maneras pero NO LA MIA.. y aora lei comentario que dicen que con ADOTABLE no se puede...

Mi pegunta es... que em recomiendan... algo sencillo, facil y menos complicado posible..

gracias antemano por centenares de respuestas

Responder Con Cita
  #2  
Antiguo 08-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira los enlaces del final de esta misma página.
Responder Con Cita
  #3  
Antiguo 08-01-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Daniel10 Ver Mensaje
Desde hace ratoq eu estoy buscando la manera y nunca encuentro como hacerlo, si las hay de otras maneras pero NO LA MIA.. y aora lei comentario que dicen que con ADOTABLE no se puede...
Se puede hacer, pero de forma manual. Es decir, el componente (ni ese ni ninguno de Base de Datos) hace eso.
Lo que debes hacer es a medida que vas pulsando teclas, generar una nueva consulta para que muestre datos en el Grid.

Por ejemplo, si pulsas J, deberás lanzar una consulta similar a esta:
Código Delphi [-]
   SELECT * From Nombre Like 'J%'

Al pulsar la siguiente, Ju, deberás lanzar la consulta:

Código Delphi [-]
   SELECT * From Nombre Like 'Ju%'

Y así sucesívamente.

El problema es que esta práctica no es muy recomendable, ya que estás generando mucho tráfico innecesario y muchas consultas. Una opción mejor, aunque no tan vistosa, es generar un filtro, y entonces realizar una única consulta.

Este ejemplo tal vez te sirva de guía, para entender cosas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 08-01-2013 a las 16:52:48.
Responder Con Cita
  #4  
Antiguo 09-01-2013
Daniel10 Daniel10 is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 24
Poder: 0
Daniel10 Va por buen camino
gracias,

muchas gracias por als respuestas... creo que vere la manera mas conveniente de hacer mi programita, aparentemente usando AdoQuery y sq.

La base datos no es muy grande, pero se ira cargando registros al pasar del tiempo...

gracias por responder a mi duda.
Responder Con Cita
  #5  
Antiguo 09-01-2013
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 Daniel10.

Si te decidis por usar un ADOQuery te pongo un ejemplo de búsqueda incremental con ese componente. Al igual que comenta Neftali, aprovecha el evento OnChange de un Edit para lanzar la nueva consulta.
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var
  cpo: string;
begin
  if RadioGroup1.ItemIndex > -1 then
    with ADOQuery1 do
    begin
      Close;
      case RadioGroup1.ItemIndex of
        0: cpo:= 'APELLIDO';
        1: cpo:= 'NOMBRE';
        2: cpo:= 'CIUDAD';
        //...
      end;
      SQL.Text:= 'SELECT * FROM TU_TABLA WHERE ' + cpo + ' LIKE :PVALOR';
      Parameters.ParamByName('PVALOR').Value:= Edit1.Text + '%';
      Open;
    end
end;
También tomá en cuenta lo mencionado en cuanto a la ineficiencia de esta forma de filtrado.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Buscar registro por parametros jafera OOP 6 22-06-2012 22:41:22
buscar registro camiz Conexión con bases de datos 1 29-05-2012 10:12:59
Buscar sobre una ADOTABLE danielgarzia Tablas planas 1 04-04-2010 18:45:01
Imprimir un registro de un Adotable Bairon Kumon Impresión 3 17-05-2006 18:50:57
Buscar y Reemplazar en un ADOTable rjsitruiz Conexión con bases de datos 1 01-06-2004 22:52:27


La franja horaria es GMT +2. Ahora son las 17:20:31.


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