Borrado de registros un poco lento.


([N1] imesacodabar-es) #1

Buenas tardes.

Sigo sin terminar de aprender a manejarme en V7. Me tiro horas y horas con cosas muy bobas…

Estoy ejecutando un proceso en segundo plano.
El proceso que ejecuto, crea un manejador de objeto de búsqueda, al que le asigno con Set variable los datos a buscar. Mi intención es borrar todos los registros que encuentre, y por ello, cuando Disparo el objeto búsqueda, realizo, dentro del nivel que se crea, un Recorrer lista eliminando fichas.

He observado que para borrar 434 registros ha tardado 5m y 59s.

¿Qué es lo que me provoca esa lentitud?

Gracias.

PD: La tabla tiene 18 campos y 6 índices.


([N2] ramiro) #2

Hola:

Dices que lo haces en segundo plano, es decir en el Pc Local.

Hazlo en tercer plano y para ese número de registros debería ser casi inmediato…

Saludos. Ramiro


([N1] imesacodabar-es) #3

Gracias Ramiro.
La verdad es que a veces exponer los problemas ayuda a visionarlos, jejeje.

Sí, es en un PC local. Parece que lo he solucionado.
He ejecutado la búsqueda desde un proceso y el borrado desde otro, lanzando solo el borrado en segundo plano y ya me ofrece un dato más cabal.

Aunque no entiendo el por qué, me quedo finalmente más tranquilo.

Gracias por la atención.


([N2] ramiro) #4

Buenas tardes de nuevo:

Recuerda lo siguiente:

  • Si la búsqueda tiene varios componentes debe hacerse siempre creando un manejador de objeto que lance en 3P un proceso al que se le pasan las variables con las condiciones de la búsqueda. El proceso crea otro manejador para la búsqueda y le pasa los parámetros (ya en 3P). Si se trata simplemente de borrar hazlo allí mismo, en el proceso y tras la búsqueda. Eso es inmediato…

  • Si necesitas ver los registros antes de borrarlos, haz la búsqueda de la misma manera y desde el proceso retorna la lista para alimentar una rejilla. Para eliminar los registros (todos o los que selecciones en la rejilla), lanza un evento de la rejilla que le pase los registros a un proceso ejecutado en 3P a través de un manejador. Es el proceso en 3P el que debe hacer la eliminación…

Saludos. Ramiro


([N1] imesacodabar-es) #5

Ok, ok… pues va a ser eso ;).
Lo pruebo y lo confirmo.
Gracias.


([N1] imesacodabar-es) #6

Borrando datos, duración: menos de 1 seg.

Gracias Ramiro. Llevo todo el día con esto :wink: (no aprenderé nunca)

Abrazos.
Iván.