Autor Tema: INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)  (Leído 10377 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Luffy

  • Kilobyte
  • **
  • Mensajes: 90
  • Reputación: +4/-2
  • Desarrollar es el arte de crecer no de crear.
    • Ver Perfil
Re:INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)
« Respuesta #15 en: Agosto 22, 2014, 04:55:32 pm »
No se mucho de vb6 pero en vb.net es facil.

Solo haces un DataTable de MySQL y de hay lo haces con un select del datatable.
Aqui un link donde explica como: http://blogtigrupordas.wordpress.com/2012/07/02/consulta-detro-de-un-datatable-en-vb-net/

incluso puedes usar la sentencia Using para descartala rapido

Código: [Seleccionar]
        Using TablaEmpresa As DataTable = Datos.Consultar(vSQL)

        End Using

Pero no se si se puede hacer un datatable en vb6 o exista algo parecido a una tabla virtual, que seria más facil que hacer un vinculo de un motor a otro.

En todo caso yo opto por usar una herramienta externa para jalar la información, pero si no pudiera usar un datatable claro.

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)
« Respuesta #16 en: Agosto 24, 2014, 11:04:39 am »
Mmm... la verdad, no conozco ese tema. Pero finalmente lo hice con un bucle y una inserción por cada iteración y anduvo bastante bien: casi 6000 registros en 8-10 segundos.
Por ahora, así me sirve. Igualmente, si surgiera una manera mejor, la implementaría gustoso  :D
Muchas gracias.

Jerónimo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)
« Respuesta #17 en: Agosto 24, 2014, 03:29:39 pm »
¿Porque demoro tanto? quiza no me explique bien pero la lectura de los 6000 es en una y esta se conseva en un rs, esta lectura puede ser lenta si no estan bien creados los indices. Ahora, ese rs lo usas para insertar en la BD destino.

Yo tardo +/- ese tiempo porque en cada inserción hago una operación, pero entendí que en tu caso era solo leer y luego insertar sin mas.

En todo caso como vemos... opciones de solución hay muchas eh.
Me encuentras en YAcosta.com

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)
« Respuesta #18 en: Agosto 24, 2014, 08:19:02 pm »
Efectivamente, Yván, seguramente tengo errores de diseño de la base de datos. Por eso tarda unos segundos (en este caso, 4 o 5) en traer los datos al recordset. Pero el tiempo que comenté fue lo que se tardó en recorrer todo el recordset y hacer las inserciones. Ahí ya no sé por qué puede ser que haya tardado tanto. A lo mejor exageré y fueron 6 segundos. De todas maneras, no resulta inconveniente ese tiempo. Aunque si pudiera mejorarlo lo haría, no tanto por el tiempo que se ahorre, sino porque significará que las cosas están bien hechas.
Muchas gracias.

Jerónimo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)
« Respuesta #19 en: Agosto 24, 2014, 09:31:39 pm »
Para tener seguridad seguiria este esquema.

Begintranss
leer bd
for i to finDelRS
insertar
rs.movenext
next i
CommitTrans

Y allí si estaría seguro que todo se inserto
Me encuentras en YAcosta.com

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:INSERT INTO SQLSERVER2005 (SELECT * FROM MYSQL)
« Respuesta #20 en: Agosto 24, 2014, 10:53:20 pm »
Eso mismo hago. Tengo plena seguridad de que se inserta todo lo que necesito y envío. Así que eso no me preocupa. Sí me preocupa que decís que debiera tardar menos tiempo. Bah, me gustaría optimizar el proceso.
Muchas gracias.

Jerónimo