Bueno me tropecé de nuevo intentando realizar algo así que acudo a ustedes en busca de ayuda. Este es mi caso:
Tengo una base de datos en Firebird 1.5 y dentro de esta una tabla de la cual necesito copiar a otra base en Mysql algunos datos como son
Identificación y Activo, el problema es que necesito que copie solo los que en la columna activo estén como S y que si esta cambia a N en Firebird se pueda actualizar ese registro cambiándolo también a N en Mysql.
Algo adicional: como podría hacer para que este proceso de copiar los datos entre las bases y su validacion se realizara de forma automática cada cierto tiempo, algo asi como una tarea programada.
Gracias por su ayuda

Copiar datos de tabla Firebird a Tabla Mysql
Comenzado por
androbin
, may 23 2012 10:08
5 respuestas en este tema
#1
Escrito 23 mayo 2012 - 10:08
#2
Escrito 23 mayo 2012 - 10:19
A mí de rápido se me ocurre una aplicacioncita en Delphi con dos conexiones (una hacia Firebird, la otra hacia MySQL) que cada cierto tiempo, controlado por un TTimer, lance una sentencia hacia Firebird:
Y se me ocurre (aunque no sé bien si ésto será posible según tus necesidades) borrar toda la info de la tabla receptora de MySQL y una vez abierto el dataset que regresa Firebird, ir insertando los registros nuevamente... de esa manera garantizas que si hubo un cambio en Firebird, éste se visualice también en MySQL...
Saludox !
select identificacion, activo from tabla where activo = 'S'
Y se me ocurre (aunque no sé bien si ésto será posible según tus necesidades) borrar toda la info de la tabla receptora de MySQL y una vez abierto el dataset que regresa Firebird, ir insertando los registros nuevamente... de esa manera garantizas que si hubo un cambio en Firebird, éste se visualice también en MySQL...
Saludox !

#3
Escrito 23 mayo 2012 - 10:25
Hola!, puedes hacerlo desde PHP también, algo para empezar:
http://www.delphiacc...bird-desde-php/
Sólo tienes que hacer la consulta de esta manera:
Donde TablaA es la tabla Firebird y TablaB es la MySQL.
Saludos.
http://www.delphiacc...bird-desde-php/
Sólo tienes que hacer la consulta de esta manera:
INSERT INTO TableB (campo1, campo2, campo3)
SELECT campoA
FROM TableA WHERE ALGO
Donde TablaA es la tabla Firebird y TablaB es la MySQL.
Saludos.
#4
Escrito 23 mayo 2012 - 10:30
Gracias Fenareth por responder tan pronto, te cuento que el eliminar los registros no seria una opción ya que con estos datos estoy creando un control de acceso a mi aplicación en la cual la primera vez que ingrese una persona activa solicite el cambio de contraseña y si esta paso de estar activa a inactiva no le permita el acceso, si borro la informacion perdería los cambios de clave que realizaron los usuarios ya que en Myslq todo esta en una misma tabla.
De nuevo gracias
De nuevo gracias
#5
Escrito 23 mayo 2012 - 10:36
Yo haría lo mismo que Fenareth, solo que no en un timer sino en un TIBEvent en Lazarus/Delphi con un trigger en AFTER INSER/UPDATE para que la aplicación haga un SELECT e inmediatamente inserte en MySQL. La ventaja de este proceso es que será llamado solo cuando sea necesario.
Lo puedes iniciar como servicio en el servidor de bd.
Saludos.
Lo puedes iniciar como servicio en el servidor de bd.
Saludos.
#6
Escrito 05 junio 2012 - 05:33
Hola!, puedes hacerlo desde PHP también, algo para empezar:
http://www.delphiacc...bird-desde-php/
Sólo tienes que hacer la consulta de esta manera:
INSERT INTO TableB (campo1, campo2, campo3)
SELECT campoA
FROM TableA WHERE ALGO
Donde TablaA es la tabla Firebird y TablaB es la MySQL.
Saludos.
Debí ausentarme pero quiero retomar el tema asi que gracias por contestar.
Me podrías decir como se realizarían las conexiones hacia las bases de datos ya que el proceso de seleccionar o insertar lo he realizado de forma separada y hacia un mismo tipo de base de datos, ademas me podrias aclarar que otros procesos realizar no se si deba realizar un mysql_query o ibase_query o algo adicional gracias de nuevo.