Cita:
Empezado por Tecnic2
...que tiene que coger tablas .dbf y copiar todos sus registros en tablas .mdb.
Obtengo los datos de las tablas .dbf con un TADOQuery y las .mdb con un TTable.
|
żPq no usas ADOTAble para las tablas de Access? Justamente ADO es el driver de MS para BD de MS (aunque luego sirva para muchas otras).
Desactiva controles visuales "ligados" a los Datasets (si es que tienes alguno).
Podrías probar a crear los índices en la tabla destino al acabar (si no son necesarios para comprobaciones), eso aceleraría las inserciones.
FieldByName tardará más que FieldByIndex; Como no va a cambiar el orden, mira cual es ese el orden y accede a los campos por índice.
Ya se que el tema de la barra de progreso y el label es necesario, pero intenta que el refresco no sea cada registro, sino cada 500 registros (por ejemplo), al usuario le sigue dando info. y tú te evitas muchos refrescos.
ADOQueryAux.RecordCount es un valor fijo, sácalo del bucle a una variable y no lo calcules cada vez (tanto el de la línea del while, como el que hay dentro).
Si puedes hacer éstos cambios, a ver si baja bastante... (infórmanos
)