Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Ligado / Interconexión de dos BD/Sesiones

Buenas,

Tengo alguna duda, haber si alguien me puede decir,

Tengo dos bases de datos distintas, aunque realmente contiene el
mismo contenido, es decir, disponen de las mismas tablas, pero bueno
esto no es relevante.

El tema es como esas dos BD. o imagino que serán dos sesiones distintas
se pueden interligar de tal manera pueda actualizar el contido de una
tabla de la SesionA, con el contido de la misma tabla en la SesiónB.a

No se si me he explicado.

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 21-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Soy de nuevo el mismo de antes,
es que no se si ha quedado demasiado claro.

Tengo 2 ficheros .gdb, y lo que me gustaria hacer sería
que el contenido de una tabla del fichero_A.gdb, se
actualizase en otra tabla distinta contenida en el fichero_B.gdb

por lo tanto creo que son 2 sesiones distintas, no?
bueno no lo sea!!

salu2
Responder Con Cita
  #3  
Antiguo 21-06-2007
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 285
Poder: 20
RolphyReyes Va por buen camino
Thumbs up

Saludos.

Lo que andas buscando es el efecto de replicacion, eso lo puedes conseguir con un programa que esta en http://www.ibphoenix.com se llama IbReplication.

Por otra parte desde la misma BD no puedes actualizar otra BD no hasta FireBird 3 segun tengo entendido; por lo pronto si quieres hacer este efecto tendras que hacer tu una utilidad o tu aplicacion hacer los procedimientos adecuados.

Espero haberte ayudado.
__________________
Gracias,
Rolphy Reyes
Responder Con Cita
  #4  
Antiguo 22-06-2007
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Poder: 21
TJose Va por buen camino
Hola _Willa

Si lo que quieres es mantener una copia de la base de datos 'en tiempo real', puedes usar una característica de firebird que se denomina shadow.
Resultados en Google

saludos
TJose
Responder Con Cita
  #5  
Antiguo 22-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Creo que no me estais entendiendo. por eso voy a poner algun ejem.
Imaginaros que tengo un Base de Datos, llamada LecturasGlobales.gdb
que contiene una serie de tablas ( gasolinera, tarifas, movimientos, etc )

y ahora tengo otra Base de Datos que se llama LecturasParciales.gdb
que entre sus tablas existe una llamada 'movimientos'.

Y lo que se trata es llevar los datos contenidos en la tabla de 'movimientos'
de la Base de Datos Parcial, y añadir o actualizar la base de datos 'movimientos' contenida en la Base de Datos Global.

Por cierto, no se si lo dice, estoy usando Base de DAtos del
tipo Interbase, y programando en C++builder, aunque si existe codigo
en Delphi, no me importa demasiado.
No importa usar procedimientos almacenados, pero me gustarián que estos
no estuviesen en la base de datos, sino poder usar TIBStoredProc,
es decir, hacerlo desde el propio programa.

Muchas Gracias, desde ya!!
salu2
_Willa
Responder Con Cita
  #6  
Antiguo 22-06-2007
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 285
Poder: 20
RolphyReyes Va por buen camino
Talking

Pues segun entiendo resolviste el problema. Si lo que quieres llevar los datos de una BD a otra "manual" entonces lo unico que debes de hacer es tener dos conexiones (componentes tipo BD) desde tu programa y listo; osea llevar los datos via programacion.
__________________
Gracias,
Rolphy Reyes
Responder Con Cita
  #7  
Antiguo 25-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Smile

ok, Entiendo.

Usar estos componentes por cada una de las BD.

- TIBDatabase
- TIBTransaction
- TIBDataSet

- Realizar consulta sobre cada una de las Tablas
- Mediante un bucle, ir reg a reg de la consulta realiza
actuando sobre la siguiente BD.

Lo probaré.
Gracias!!!!
Responder Con Cita
  #8  
Antiguo 25-06-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Puedes usar una query con parametros donde insertas o modificas campos de una BD con los valors de otra..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #9  
Antiguo 26-06-2007
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Poder: 21
TJose Va por buen camino
Hola _Willa

Cita:
Usar estos componentes por cada una de las BD.

- TIBDatabase
- TIBTransaction
- TIBDataSet
También puedes usar una transacción distribuida (creo que así se llama), esto es:
- 2 TIBDatabase
- 1 TIBTransaction

ejecutas las sentencias que quieres en cada una de las bases de datos dentro de una misma transacción.

Saludos
Responder Con Cita
  #10  
Antiguo 27-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Gracias, TJose probaré esto ultimo que dices para ver la manera
en la que puedo encajarlo en C++Builder.

puede ser algo así como...
Código:
    ib_db1 = new TIBDatabase(NULL);   // Primera BD
    ib_db2 = new TIBDatabase(NULL);  // Segunda BD

    ib_tra = new TIBTransaction(NULL);  // Transacción Común.

    ib_db1->AddTransaction(ib_tra);
    ib_db2->AddTransaction(ib_tra);

    ib_tra->AddDatabase(ib_db1);
    ib_tra->AddDatabase(ib_db2);
Bueno Probaré si funciona todo esto.
_Gracias.
Responder Con Cita
  #11  
Antiguo 28-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Una duda q me ha quedado, es si en lugar de usar codigo Builder C++,
si podria hacer esto mismo a través del un procedimiento Almacenado,

Es decir, se podría hacer un procedimiento Almacenado ( sp_xxxx ) que
permita enlazar datos de dos Base de Datos distintas, para consultar/mover,etc - datos de una tabla a otra tabla de otra Base Datos.

Con sentencias SQL, dos Bases de Datos Distintas (.gdb ) se pueden usar a la vez ??

Si alguien ha realizado algo asi ?? , Se puede en sp ??

_Gracias_
Responder Con Cita
  #12  
Antiguo 28-06-2007
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 285
Poder: 20
RolphyReyes Va por buen camino
Red face

Saludos.

Como te habia respondido anteriormente desde una BD Interbase/Firebird no es posible la "manipulacion" de datos a otra BD, segun esta en la pagina principal de Firebird esto sera posible en la version 3.

Pero con http://www.ibexpert.com segun su documentacion utilizando unas sentencias "propias" de ellos se puede realizar esta operación, solo que el manejador debe de ser la de pago.

Hasta luego.
__________________
Gracias,
Rolphy Reyes
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sesiones en PHP dieleo PHP 2 21-06-2007 13:40:04
Sesiones David PHP 6 01-03-2007 00:18:48
Interconexión de aplicaciones... adlfv OOP 1 12-08-2005 17:03:02
modificar dbgrid ligado a query squenda Conexión con bases de datos 7 25-04-2004 06:54:03
Sesiones en PHP... Tanix PHP 2 11-08-2003 15:02:50


La franja horaria es GMT +2. Ahora son las 19:54:39.


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