![]() |
Copiar datos entre Bases de Datos
Saludos Amigos, donde quiera que se encuentren,
tengo un problemita con una situacion, quiza a ustedes les ha pasado anteriormente, quisiera copiar los datos de una BD a otra, pero en el ultimo paso me quedo trancado, y no tengo idea de que pudiera hacer, he estado buscando pero no encuentro algo que me ayude, les muestro lo que he hecho, Gracias Infinitas por su tiempo y su ayuda
|
Hola
Nunca lo he hecho pero me parece que tienes que: 1- tener dos conexiones diferentes para cada BD. 2-Mantener las conexiones activas 3-Que las tablas y campos sean iguales 4-Hacer un recorrido de la tabla que quieras copiar. 5-Hacer un update a la tabla nueva haciendo un recorrido del query de la primera tabla. no me hagas mucho caso, solo opino. saludos |
Hola Caral,
eso lo he pensado, pero ahora la cuestion es como? ok podria usar dos conexiones, pero como leo de un Query a otro? Gracias |
Hola
Me imagino que igual que si usaras una sola conexión, no creo que sea diferente. No lo he hecho nunca amigo, solo me imagino. Saludos |
No sé si sqlite lo permite, algunas bases de datos sí, el trabajar con ambas a la vez, algo así como:
La forma clásica es lo que ha explicado Caral, tener 2 conexiones: (resumiendo mucho):
|
Cita:
// Saludos |
Hoy me fui LEJOS donde no existiera la energia electrica, (Amazonia Venezolana)
y apuesto que muchos de nosotros quisiera irse, pero tan solo por un momento ;) porque seria una pena evitar recibir un halago como este que recibi cuando llegue: "Martin, le vas a quitar el trabajo a los Administradores", aunque se que no sera verdad, y menos yo; No porque menos-precie mi ezfuerzo o el de ustedes amigos mios, sino que por tan solo; por AHORA no pasara, y solo nosotros sabemos porque, y por tanto no respondi a este mensaje aunque hallan llegado muchas notificaciones, me gustaria opinar sin aun probarlo, (aunque lo probare a primera hora) Roman! Tienes toda la razon, me faltaba conocer esa sentencia, donde importaras a memoria (Supongo yo!) toda la tabla, y luego la manejaras a tu antojo, pues es lo que mas logica y sentido comun puede tener, aunque no menos que las otras opiniones, pero si creo yo, que absurdo seria no tener este problema en cuenta, Importar una BD a Otra? despues de tantos años de investigacion sobre el asunto? no creo que vallamos nosotros a inventar como hacerla, no se si me siguen, pero bueno, no queria dejar este momento para escribirles. A primera hora estare haciendo las pruebas correspondientes! como buen curioso e informatico caprichoso :) Gracias Roman y a todos |
En SQLite3 es facil.
Attach, como explico Roman, y usa el DUMP de la BD-1 a un archivo DumpX. Luego todo el archivo DumpX (que son comandos SQL en texto comun) lo aplicas a la BD-2. Esto te crea la tabla y seguidamente le carga los datos. En estos Dumps puedes inclusive pasar TODA una base de datos a otra. Sin embargo, con SQLite3, puede siempre usarse una base de datos que este "attached" como si ya fuera solo una. Ese principio aumenta la capacidad de multiaccesos para escribir: procesos escribiendo en BD-1 no bloquean BD-2, pues son archivos fisicamente independientes. |
Saludos,
Estuve haciendo unas pruebas, pero no se me ocurre mas nada, y aun no he podido encontrar algun ejemplo de alguien que lo halla hecho antes miren lo que he estado haciendo, al parecer importa la BD correctamente, porque no me da ningun error, y de paso estoy viendo cual es la base de datos conectada actualmente, lo que me muestra que SI esta conectada la numero 1 (Hola) pero cuando entra al proceso de copiar los datos entonces da un error, ya las dos estan creadas, lo hice con una misma conexion, aun no he intentado con dos, pero creo que no hace falta, por lo menos no hasta este paso, pues las crea correctamente que creen que pueda estar fallando aqui? Gracias
|
Cita:
|
Y, ¿ZQuery está conectado a ZConnection?
// Saludos |
Casimiro eso lo se, el error esta expresado en el codigo
Si Roman, esta conectado el ZQuery1 al ZConnection1 Gracias |
Cita:
Lo he visto al "citar", que sale en letra negra. |
No creo que en ese query puedas ejecutar comandos que no sean de "traer" datos. Necesitas algo que relacione "update", o "execute". Tal vez hasta un componente mas para lograrlo.
|
Cita:
// Saludos |
Cita:
|
Cita:
Pero claro, si pongo Open en lugar de ExecSQL, obtengo errores ;) // Saludos |
Si. Gracias Roman.
A esto me referia, mas sin detalles, por no ser usuario de los Zeos. |
Asi es Roman, siempre se me pasa ese ExecSQL;
pero fijate lo puse asi y me da un error de sintaxis cerca del Select
Cita:
|
Sí, pegué algo que no es correcto. Pon así la seguda sentencia:
// Saludos |
La franja horaria es GMT +2. Ahora son las 07:21:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi