Jump to content


Photo

Copiar datos de tabla Firebird a Tabla Mysql


  • Please log in to reply
5 replies to this topic

#1 androbin

androbin

    Member

  • Miembros
  • PipPip
  • 10 posts

Posted 23 May 2012 - 10:08 AM

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
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3486 posts
  • LocationMexico City

Posted 23 May 2012 - 10:19 AM

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:


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 ! :)
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 23 May 2012 - 10:25 AM

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.
  • 0

#4 androbin

androbin

    Member

  • Miembros
  • PipPip
  • 10 posts

Posted 23 May 2012 - 10:30 AM

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

  • 0

#5 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

Posted 23 May 2012 - 10:36 AM

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.
  • 0

#6 androbin

androbin

    Member

  • Miembros
  • PipPip
  • 10 posts

Posted 05 June 2012 - 05:33 PM

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.

  • 0




IP.Board spam blocked by CleanTalk.