![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
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 )
__________________
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. |
|
#2
|
|||
|
|||
|
Ya he probado lo del RecordCount y he reducido 10 minutos. Ahora estoy probando poner el TADOTable pero no veo la propiedad "FieldByIndex". Es que no la he buscado bien?
Gracias. |
|
#3
|
|||
|
|||
|
creo que se refiere a Field[0] en vez de FieldByName('fecfac'), que en ver por nombre, accedas por la posicion de campo
|
|
#4
|
||||
|
||||
|
Cita:
El tema de los controles visuales (no refrescar cada registro, sino cada 500, por ejempo) creo que también te hará bajar bastante; junto con los índices en la tabla destino (si es posible). Una última cosa que se me ocurre (aunque no se si bajará mucho el tiempo) es utilizar un ADOQuery/ADOCommand para insertar en lugar de un ADOTable; En ese caso se puede "jugar" con las propiedades Prepared(False), ExecuteOptions(eoExecuteNoRecords), CursorType(ctOpenForwardOnly),... y tal vez alguna más... Lo dicho, sigue informándonos de los resultados, ya que es tema que interesa.
__________________
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. |
|
#5
|
|||
|
|||
|
Tengo la siguiente funcion para abrir la conexion ADO de enlace con las tablas access destino, pero me da error. PORQUE!!!
procedure TFAssistent.ObreADO(); begin ADOConnexioAccess.ConnectionString := 'Provider=MSDASQL.1;' + 'Persist Security Info=False;' + 'Extended Properties="DSN=WingestControl;' + 'DBQ=C:\Dades\WingestControl\ANCORA\dades.mdb;' + 'DriverId=25;' + 'FIL=MS Access;' + 'MaxBufferSize=2048;' + 'PageTimeout=5;' + 'UID=admin;"'; ADOConnexioAccess.Connected := True; ADOTAccessDades.Active := True; end; |
|
#6
|
||||
|
||||
|
Hola Tecnic.
Te pido que leas la guia de estilo de los foros, debido a que has puesto una nueva pregunta que nada tiene que ver con este hilo (aún cuando lo hayas iniciado vos). También te pido que aprendas a usar la etiqueta [delphi] para publicar trozos de código, correctamente indentados y con la sintaxis resaltada. De la manera que están publicados realmente se hace dificil su lectura. Por último, te refiero al hilo de la calidad de las preguntas; espero que al leerlo vos mismo entendas porque. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#7
|
|||
|
|||
|
Siento no haber leido la guia de estilo.
Con los controles ADO ya ve copia los datos mucho mas rapido. Muchas gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|