FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Copiar Tabla de una BD a Otra BD en Firebird
Como puedo copiar o actualizar una tabla en BD distintas, es decir
tengo la tabla en 2 BD, y quiero que cuando se actualice(inserte,actualice,elimite) algun elemento de la tabla, en las 2 BD la misma tabla sea actualizada algo asi como REPLICAR la tabla en Bases de datos distintas.. ejem: BasedeDatos1.fdb Conceptos BasedeDatos2.fdb Conceptos Que cuando inserte o modifique en la primera BD entonces tambien se actualice la segunda... gracias...
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#2
|
|||
|
|||
Una de las formas que se me ocurre es desarrollando una UDF (User Defined function), la cual es una dll que desarrollas en Delphi y luego la incluyes en tu Motor de Base de Datos Firebird. Luego, ante un evento de insert, update, etc llamas a tu función.
Una UDF es por ejemplo el Cast(). Espero te sirva Saludos
__________________
Luciano DG |
#3
|
|||
|
|||
Hola,
mmmm... el tema de la UDF me parece un tanto "verde" para mi comprensión, aunque no descarto nunca nada. Lo que yo no entiendo de la cuestión inicial es: si las 2 BDs contemplan lo mismo en cuanto a datos, por qué simplemente no se copian los archivos FDB y listo si de todas formas ambas bases son iguales? La respuesta más posible a eso es que ambas bases están conectadas y obviamente para cambiar el archivo hay que desconectar al menos a una. Firebird por el momento no contempla el uso de bases separadas (me encantaría que alguien de los creadores de FB lo tenga en cuenta porque realmente es útil y solventaría varios cientos de líneas en código, pero bueh), por lo tanto lo más simple sería tener dos conexiones abiertas por aplicación y que las operaciones se realicen sobre ambas bases. Personalmente no lo haría por cuestiones de diseño, pero cada cual aplica las ideas a sus propios casos. Otra solución válida sería tener fechas de modificación por registro y realizar comparaciones con tablas centrales (Sucursales, configuración, etc.) y de esa manera solo exportar los datos actualizados, como una pseudo-replicación. Es un poco trabajoso y requiere cambios en la estructura de las bases pero resulta bastante efectivo. Lo cierto es que hay varias formas de hacer lo que pedís, pero no todas pueden aplicarse a todo y cada metodología tiene sus limitaciones. Siento no poder ser de más ayuda. Saludos!
__________________
Suerte .: Gydba :. |
#4
|
|||
|
|||
Copiar Tabla de una BD a Otra BD en Firebird
Gracias Luciano y Gydba, por contestar, me interesaria saber como se podria integrar la DLL que mencionas a FIREBIRD, y una de la intenciones e usar FIREBIRD en Linux asi que no se si sea el mismo metodo que las DLL de Windows...
Por ahora para Solucionar esto tengo una pequeña Aplicacion en Delphi en Windows y otra en FreePascal en Linux usando un componente de acceso gratuito llamado fblib que hasta n lo que he provado funciona perfectamente. En cuanto a lo que menciona Gudba, las BD son distintas, el detalle es que estas tablas que quiero replicar o mantenet iguales en estas BD es por la situacion de las relaciones para la elavoracion de reportes usando sin complicaciones simples comandos SQL con Unions & INNER, ya que de esta manera es facil obtener la informacion que necesito... El detalle de las BD es el siguiente BD_Comun................... Tablas de Uso General BD_Empresa1............... Tablas de Movimientos & Copia Tablas Generales BD_Empresa2 .... ... ... BD_Empresa"n"
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
|
|
|