Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2007
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 22
tefots Va por buen camino
para busquedas incrementales yo uso like

conforme el usuario va escribiendo en un textbox
en el onkeypres del textbox
hago lo siguiente.

if textbox1.text<>'' then begin
dbbrid1.beginupdate
query1.close
query1.sql.add('select from tabla1 where tabla1.campo like '%dato%')
query1.open
dbgrid.endupdate
end;

con esto , el dbgrid se va posicionando localizando el registro correspondiente conforme vamos escribiendo o borrando.
en acces el like creo que no hay que ponerle % , el codigo es solo como funciona , hay que adaptarlo un poco.

nota : para optimizar ,tambien se puede poner un temporizador (y meter el codigo en el temporizador) , y en el onkeypress dehabilitar y habilitar el temporizador , de unos 200/300ms. asi cuando escriba , no se posiciona cada vez que apretemos una tecla sino que lo hace cuando pase x tiempo despues de apretar la ultima tecla.

saludos.
Responder Con Cita
  #2  
Antiguo 08-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
Empezado por tefots Ver Mensaje
izar ,tambien se puede poner un temporizador (y meter el codigo en el temporizador) , y en el onkeypress dehabilitar y habilitar el temporizador , de unos 200/300ms. asi cuando escriba , no se posiciona cada vez que apretemos una tecla sino que lo hace cuando pase x tiempo despues de apretar la ultima tecla.

saludos.
Yo prefiero al presionar intro en el edit de búsqueda:
Código Delphi [-]

procedure TForm1.Edit1keyDown(...);
begin
   if key = vk_return then
   begin 
      // abrir y cerrar la consulta
   end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 08-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 Lepe Ver Mensaje
Yo prefiero al presionar intro en el edit de búsqueda...
Eso siempre!!! En eso estoy con Lepe.

Aunque te he dado la solución, tengo que decir que si vas a acabar buscando por Manolo, yo también encuentro una tontería buscar por: m, ma, man, mano, manol y finalmente manolo.
Lo que pasa que queda muy bonito y a los clientes les gusta mucho;
Básicamente a ellos les da igual que para hacerlo así debas generar más tráfico de red de la cuenta o traerte muchos más registros de los necesarios,... Eso sí luego que funcione, que vaya muy rápido y que consuma poco...
__________________
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.
Responder Con Cita
  #4  
Antiguo 08-11-2007
loquillo3 loquillo3 is offline
Miembro
 
Registrado: oct 2007
Posts: 51
Poder: 19
loquillo3 Va por buen camino
Estaba viendo este codigo que genero marcsc:

Código Delphi [-]
 
interface

  TBuscador = class(TObject)
  private
    FIndiceCampo: Integer;
    FDataSet: TDataSet;
  public
    constructor Create(DS: TDataSet = nil); 
    property DataSet: TDataSet read FDataSet write FDataSet; //Sobre el que se hace la búsqueda
    function Buscar(Texto: String; BuscarBOF: Boolean = True): Boolean;
  end;

implementation

//Como el valor por omisión del parámetro DS es nil, puedes llamar al constructor
//sin parámetros y asignarle posteriormente el DataSet
constructor TBuscador.Create(DS: TDataSet = nil);
begin
  inherited Create;
  FDataSet:= DS;
  FIndiceCampo:= 0;
end;

//El parámetro BuscarEOF, por defecto True, busca el texto desde el inicio del
//DataSet. En caso que se especifique el valor False, buscará incrementalmente
function TBuscador.Buscar(Texto: String; BuscarBOF: Boolean = True): Boolean;
begin
  Result:= False;
  with FDataSet do
  begin
    if BuscarBOF then
    begin
      First;
      FIndiceCampo:= 0;
    end;

    while (not EOF) and (not Result) do
    begin
      while (FIndiceCampo < Fields.Count) and (not Result) do
      begin
        //Esto seria una busqueda absoluta, si quieres opciones de búsqueda
        //parcial, con opciones de mayúsculas etc te lo dejo como mejora 
        Result:= Fields[FIndiceCampo].Text = Texto;
        Inc(FIndiceCampo);
      end;
      FIndiceCampo:= 0;
      Next;
    end;
  end;
end;

Neftali si tu pudieras poner un pequeño ejemplo hecho en access podria guiarme de ahi, ya que vi en el tuyo que usabas un archivo xml.

Saludos
Responder Con Cita
  #5  
Antiguo 08-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 loquillo3 Ver Mensaje
Neftali si tu pudieras poner un pequeño ejemplo hecho en access podria guiarme de ahi, ya que vi en el tuyo que usabas un archivo xml.
Ya te lo había comentado antes.

Cita:
Empezado por Neftali Ver Mensaje
De todas formas he modificado el ejemplo para permitir cargar los datos desde un XML o desde un MDB.
Es el mismo sitio donde estaba el otro; Link.
__________________
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.
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
Incremental en red jgmarduel Conexión con bases de datos 3 19-12-2005 15:52:36
QRLabel incremental Barzaugc Impresión 3 17-06-2005 11:17:58
Consulta Busqueda Incremental Gustavo Gowdak SQL 1 13-12-2004 09:27:08
respaldo incremental juan hernandez Linux 1 04-12-2004 15:30:30
busqueda incremental con ado slat Conexión con bases de datos 1 11-07-2004 18:32:52


La franja horaria es GMT +2. Ahora son las 12:11:01.


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