Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2017
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Dbgrid Filter edit lento

Hola lo hago desde delphi7 base mysql, hago un filtro en un edit funciona rapido pero de repente (a veces) cuando empiezo a borrar un apellido Ejemplo: Garcia, borro la a y me trae todos los semejantes por cada letra que borro me tarda muchisimo. No se que puede ser. Gracias.

Código Delphi [-]
procedure TForm1.Edit4Change(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Filtered:= False;
DBGrid1.DataSource.DataSet.Filter:=  'apellido  like'+ QuotedStr('*'+trim(EDIT4.Text)+ '*');
DBGrid1.DataSource.DataSet.Filtered:= True;
end;
Responder Con Cita
  #2  
Antiguo 12-04-2017
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Primero seria bueno saber con que componentes de conexion trabajas. La lentitud puede deberse a que la cantidad de registros es muy alta. Ahora, si tienes todos los datos en local (Digamos en un clientdataset) deberia ser mas rapido caso contrario estas moviendo muchos registros desde el servidor.
Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #3  
Antiguo 12-04-2017
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Dbgrid lento

Hola uso delphi7 mysql conexion zeos la tabla tiene aproximadamente 400000 registros.
Gracias.
Responder Con Cita
  #4  
Antiguo 12-04-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Utiliza intrucciones sql, en lugar de lo que estás haciendo.
Responder Con Cita
  #5  
Antiguo 12-04-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Puedes reducir el impacto del filter (sea con query o tablas) haciendo que solo realice la busqueda cuando se tengan 5 caracteres (menos o mas) dependiendo de lo que requieras para limitar el numero de resultados, esto ya que dependiendo del campo puede que todos tus registros contenga el caracter por el cual estas filtrando por ejemplo que busquees en una clave y sean en formato "000###", si buscas el "0" todos van a tener y te regresara 3 veces 40000 registros.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #6  
Antiguo 12-04-2017
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Utiliza intrucciones sql, en lugar de lo que estás haciendo.
Definitivamente es la mejor opcion.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #7  
Antiguo 18-04-2017
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.267
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 shoulder Ver Mensaje
mysql conexion zeos la tabla tiene aproximadamente 400000 registros.
Definitivamente usar búsqueda incremental (o filtros) con una tabla de 400.000 registros creo que no es una buena idea.
Ya hemos discutido aquí que conceptualmente y de diseño no es una buena decisión. A los clientes les gusta y es una costumbre que tienen de cuando las Bases de Datos eran locales, pero con un SGBD, personalmente creo que es un error.

No comentas si estás trabajando en red o monopuesto y si el SGBD está en el mismo equipo o en otro. Si estás trabajando en red (o hay la posibilidad de que lo hagas en un futuro), la "mala decisión" se convierte en "horrible" (siempre como opinión personal). Por lentitud/rendimiento, sobrecarga del servidor, tráfico de red,...
__________________
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
  #8  
Antiguo 27-04-2017
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Dbgrid lento

Hola lo solucione asi, no se en que me beneficio el Disablecontrols y el enable... pero funciono.


Código Delphi [-]
DBGrid1.DataSource.DataSet.DisableControls;
DBGrid1.DataSource.DataSet.Filtered:= False;
DBGrid1.DataSource.DataSet.Filter:=  'apellido  like'+ QuotedStr('*'+trim(EDIT4.Text)+ '*');
DBGrid1.DataSource.DataSet.Filtered:= True;
DBGrid1.DataSource.DataSet.EnableControls;
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
pasar de edit a dbgrid edgar_prospero Varios 3 22-06-2012 20:12:52
DBGrid a Edit(X).text Chuma87 Varios 7 25-09-2010 03:25:34
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
DBGrid (Edit ? Update?) MasterXP SQL 0 23-02-2005 07:49:30
Delphi7 + BD acces + dbgrid = lento vycens Conexión con bases de datos 1 13-05-2004 09:51:39


La franja horaria es GMT +2. Ahora son las 02:27:16.


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