Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2005
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 12-02-2005
lucianojdg lucianojdg is offline
Miembro
 
Registrado: dic 2003
Posts: 42
Poder: 0
lucianojdg Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 14-02-2005
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
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 :.
Responder Con Cita
  #4  
Antiguo 14-02-2005
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:20:47.


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
Copyright 1996-2007 Club Delphi