Ver Mensaje Individual
  #25  
Antiguo 12-03-2011
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Cita:
Empezado por g_ferrada Ver Mensaje
Buscando otros métodos dí con este blog y el insert masivo. Mi base de datos es Firebird 2.1 así que utilicé la forma

EXECUTE BLOCK AS BEGIN
INSERT INTO table1 (col1, col2) VALUES (2, 'two');
INSERT INTO table1 (col1, col2) VALUES (4, 'four');
INSERT INTO table1 (col1, col2) VALUES (5, 'five');
END

Reemplacé el ZTable por ZQuery, agregando un INSERT en el SQL.Text por cada registro
La única dificultad es que el bloque sólo acepta 255 INSERT, así que en mi bucle ejecuto el query cada 200 registros, entonces reinicio el SQL.Text. O sea, inserto los registros en bloques de 200. Con esto logré reducir el tiempo de a 25 minutos... no será una maravilla, pero es bastante mejor de lo que tenía.

Decidí escribir este post, por si a alguien le sirve de utilidad. Y si saben como hacerlo todavía mejor, agradecería una sugerencia.

Saludos
Está bueno el aporte, habría que ver la manera de mejorar el asunto de las inserciones de a 200 registros.
Tal vez la versión 2.5 de Firebird tenga alguna herramienta que ayude en el caso.
Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita