Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Insert desde una base de datos a Otra (https://www.clubdelphi.com/foros/showthread.php?t=95899)

Neeruu 05-10-2022 16:07:57

Insert desde una base de datos a Otra
 
Hola amigos, como andan?

Quiero hacerles una consulta haber si me pueden guiar...

Desde una base de datos firebird 3 quiero hacer un insert a otra base de datos en el mismo servidor...
Básicamente lo que quiero hacer es llevar la auditoria de esa base de datos, pero en otra base de datos, entonces quiero que los insert de mis log de auditoria en vez que se realicen en una tabla de la misma base de datos, quiero que se hagan en otra db...

Como puede hacer esto? es posible...? (me refiero a hacer el insert en una DB desde otro DB)

Desde ya muchas gracias.
Saludos.

Neftali [Germán.Estévez] 05-10-2022 16:16:14

No lo he usado, pero a ver si te sirve esto para "seguir la pista".
Revisa sobre EXECUTE STATEMENT con ON EXTERNAL.

Échale un vistazo a este artículo:
https://firebird21.wordpress.com/201...datos-externa/

Neeruu 05-10-2022 17:34:18

Hola Neftali...

Por lo que veo, eso es lo que estoy buscando... .tengo que ver el rendimiento... creería que debe ser rápido (o sea que no me bajara la performance del Insert/Update/Delete).
Cualquier novedad la comento...

Gracias....

Casimiro Notevi 05-10-2022 19:06:33

Yo lo he usado en algún proyecto y es rápido, no tendrás problema con eso.

Angel.Matilla 19-04-2023 18:23:20

Buenas a todos. Andaba yo dando vueltas a un sistema para exportar/importar una base de datos desde otra y encontré este artículo. Creo que sería justo lo que necesito, pero leyendo el mismo me ha surgido una duda: Evidentemente las tablas de ambas bases de datos están indexadas; entonces ¿qué pasa si el registro que viene a añadirse ya existe en la BB.DD.? Es lógico que se produciría una violación de claves y no veo como evitarla con ese EXECUTE STATEMENT.

Intuyo una de las respuestas que me vais a dar: colocar en cada una de las tablas un campo que indique si el registro ha sido exportado no.

Casimiro Notevi 19-04-2023 19:54:41

Mejor que aclares exactamente qué quieres hacer :)

Angel.Matilla 20-04-2023 09:54:49

Vamos a ver si logro explicarme.
La aplicación está instalada en tres locales independientes y uno de ellos, digámoslo así, es la central pero no están conectados entre sí. Lo que pretendo es que cada cierto tiempo las BB.DD. de cada una de las oficinas se envíen a la central y se acumulen en las tablas que ya existen.

Casimiro Notevi 20-04-2023 12:39:35

Ese tema es muy complejo, se ha tratado otras veces en los foros.
Tienes que pensar muy bien todo el proceso, los datos que necesitas enviar a unos y otros, cómo importarlos sin perder, sobreescribir, repetir, etc.
Incluso también si alguien elimina algún dato entonces tendrás que eliminarlo de los otros sitios.
Poder, se puede hacer, pero hay que tener muy claro lo que se tiene y lo que se quiere conseguir. Tú eres el único que tienes toda la información para decidir cómo hacerlo y si vale pena.
Lo ideal es tener un servidor de bases de datos a donde todos se conecten y se acabó el problema.

Angel.Matilla 21-04-2023 09:48:07

Tienes razón. Hay algunos puntos de los que citas que ni me los había planteado, como qué hacer con los registros que borra uno de los usuarios pero se mantiene en la BB.DD. conjunta. Tengo que pensarlo mejor. Gracias.

Angel.Matilla 24-04-2023 10:25:27

Cita:

Empezado por Casimiro Notevi (Mensaje 551223)
Lo ideal es tener un servidor de bases de datos a donde todos se conecten y se acabó el problema.

Efectivamente, sería lo ideal pero conociendo a los clientes sé que no van a querer.

Dando vueltas al problema este fin de semana se me ha ocurrido una solución, que tal vez no sea la mejor. Dado que todos los registros que se exportan/importan llevan un código que identifica la provincia de procedencia una alternativa es borrar en la BB.DD. conjunta todos los registros de esa provincia como paso previo a la importación de cada una de las tablas y todo el proceso se puede hacer todo a través de un script.


La franja horaria es GMT +2. Ahora son las 21:13:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi