Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2012
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Buenos días.

Efectivamente Ecfisa, el comportamiento erroneo es solo en esta parte del programa, aunque lo que me hace perder el norte es que este fallo no se produzca siempre sinó aleatoriamente. Con las investigaciones es casi seguro que el error no está en el doble click.

Puede que sea en el form create, form show o algo así, a lo que llegué más cerca de reproducir el error fue en el código que pasé ayer, ya que después de entrar en el begin, el cursor se clavaba en el end y no salía de allí hasta que clicaba en el formulario y a continuación presionaba F9

Gracias

Josep
Responder Con Cita
  #2  
Antiguo 31-05-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Hola Jafera y todos los compañero del Club!

Te recomiendo que desactives/quites (comentes) la línea que utiliza Locate. Luego has nuevamente las pruebas.

Realmente, Locate es una función muy lenta y consume y desperdicia demasiados recursos si utilizas un DB en red tipo Firebird. Locate solo debería de utilizarse para grupos de datos muy pequeños. Un grupo de 1,500 registros no es precisamente pequeño, más si éstos deben ser transportados por la red.

Otro problema que podría estar empeorando el uso de Locate, es que estás utilizando objetos para los campos. Por ejemplo: "Buscar_CamioID", "Camions_ParcID". Estos objetos deben ser actualizados cada vez que se cambia el cursor, lo que origina un gran consumo de recurso. Además, no sabemos si su implementación interna tenga problemas, cómo una fuga de memoria por ejemplo. Mejor utiliza algo más eficiente cómo por ejemplo: "MiTabla.FieldByName('id')".

Me gustaría saber que base de datos utilizas.

Si encuentras que Locate es el problema, entonces sería oportuno que empieces a pensar en otra arquitectura para conseguir lo que quieres. No esperes una respuesta a: "Cómo hacer más rápido a Locate" porque realmente, Locate no puede ser más rápido. Algo más rápido que Locate, es algo que no sea Locate.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 31-05-2012
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Gracias Chris.

Como puse en mi primer post uso Delphi 6 y Firebird 1.5 (de momento), digo de momento ya que quiero migrar a 2.5 pero como uso el ordenador del trabajo y el de casa a la vez y en el trabajo tenemos 1.5, no puedo cambiarme hasta que no actualizemos a 2.5.

Este programa no usa una red, se utiliza en máquina local, todo en el disco C.

Como dije, en las pruebas que hice ayer se quedaba bloqueado en el JvGrid2DrawColumnCell, entraba en el begin y se quedaba en el end sin pasar de ahí (usando F7).

Saludos
Responder Con Cita
  #4  
Antiguo 31-05-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tratar de concluir algo en cuanto al rendimiento a partir de depurar un evento de redibujado como lo es el DrawColumnCell es sumamente difícil ya que la misma depuración incide sobre las veces que se genera el evento.

Haz la prueba que menciona Chris.

// Saludos
Responder Con Cita
  #5  
Antiguo 31-05-2012
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Ok, pero si comento el locate, como hago para que me muestre el registro?

Saludos

Edito:
He comentado la linea locate.
El resultado es que cada vez que hago un doble click va al primer registro, en 20 click ni un fallo.
He vuelto a activar esta linea y a la segunda ha fallado

Josep

Última edición por jafera fecha: 31-05-2012 a las 18:49:17.
Responder Con Cita
  #6  
Antiguo 31-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Si, realmente la función Locate no es ninguna maravilla, pero aún así sigo pensando que el problema se está ocasionando en otro lado.

Acabo de reproducir la situación utilizando un TIBDataSet con Locate sobre un sobre una tabla de 15.698 pacientes y no demora siquiera dos segundos en posicionar, abrir el nuevo form y mostrar los datos. Y aunque el tiempo pudiera incrementarse de acuerdo a la potencia del equipo, eso está muy alejado del congelamiento de las pantallas que habla jafera.

Por otro lado me llama la atención que el comportamiento sea errático. Si fuera ocasionado por la lentitud de un método, procedimiento o función, la situación tendría que ser fácilmente reproducible.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 31-05-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Vamos a tener que ver todo el código
Responder Con Cita
  #8  
Antiguo 31-05-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Acabo de reproducir la situación utilizando un [i]Por otro lado me llama la atención que el comportamiento sea errático. Si fuera ocasionado por la lentitud de un método, procedimiento o función, la situación tendría que ser fácilmente reproducible.
Intenta volver hacer la prueba creando objetos para cada uno de los campos en la tabla, a cómo nuestro compañero está haciendo. Ése escenario sería más fiel al del compañero.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
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
lenta busqueda de archivos con api windows anubis API de Windows 3 18-03-2008 00:18:52
Solamente Primer Búsqueda es lenta PedroAlfonso Firebird e Interbase 0 13-11-2007 20:11:13
Ayuda con consulta lenta, lenta, lenta Gregory Mazon Firebird e Interbase 22 27-06-2007 09:56:38
Busqueda Lenta por Rango de Fechas.... AGAG4 Tablas planas 5 06-04-2005 18:51:53
busqueda lenta Giniromero Conexión con bases de datos 6 24-07-2003 09:36:48


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


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