Ir al contenido


Foto

Bombear datos entre dos bases de datos Firebird


  • Por favor identifícate para responder
7 respuestas en este tema

#1 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 21 julio 2015 - 12:43

Hola amigos.

 

Siempre he utilizado la magnífica IBDataPump (de CleverComponents) para bombear datos de una base de datos a otra. Pero esta vez me da un error, y es que IBDataPump no se actualiza desde 2.002, y por ello no tiene soporte al Character Set UTF8 (que se añadió posteriormente a Firebird), con lo que no puedo bombear datos de una base de datos en UTF8 sin que salte el correspondiente error en sus cadenas.

 

He buscado alternativas, y solo veo el EMS DataPump, que es de pago.

 

Existe una utilidad libre, open-source, llamada FBCopy, que aparentemente sirve para copiar datos entre dos bases de datos, pero estaba hospedada en la sourceforge.net, que aparentemente ha quebrado, y toda la web está caída.

 

He encontrado un enlace de descarga : http://www.firebirdf...ort-1.90.tar.gz

 

Tiene 6 años de antigüedad, así que no estoy seguro de si va a soportar UTF8, y además no incorpora el manual, así que no veo como especificar las tablas a copiar.

 

¿ Qué herramientas de bombeo utilizáis vosotros ?, ¿ alguien me puede proporcionar el manual y/o una versión más moderna de FBCopy ?.

 

Gracias.

 

 


  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 21 julio 2015 - 12:57

Saludos.

 

Cuando me he visto en la necesidad de hacer algo como esto he utilizado IBDataPump, pero como mencionas que no tiene soporte UTF-8 pues ni modo; IbExpert (no sé si en la versión personal lo soporte)  en la opción Tools --> Extract Metadata la segunda pestaña (Data Tables) puedes extraer la data de las tablas que especifiques.

 

No tengo a mano el EMS SQL Manager para Interbase/Firebird pero se que ellos tienen como parte de su producto la exportación de data a diferentes formatos, no se si en la versión gratuita de este producto o versión de prueba tenga disponible dicha opción.


  • 1

#3 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 21 julio 2015 - 01:57

Hola, Ademas de lo que comenta Rolphy, podes extraer los datos en consultas, ejemplo:


php
  1. INSERT INTO ARTICULOSTIPO (ID) VALUES ('1');

esto lo uso en IBExpert y FlameRobin ambos lo generan con pocos golpes de raton.


  • 1

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 21 julio 2015 - 03:33

Y no te sirve el que está alojado en firebirdfaq ?
 
FBCopy download

Saludos


  • 1

#5 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 21 julio 2015 - 06:52

Y no te sirve el que está alojado en firebirdfaq ?
 
FBCopy download

Saludos

 

Sí, es el mismo enlace de donde he sacado el FBCopy que pongo en el mensaje inicial, pero viene sin documentación, y la documentación on-line ya no está disponible al haberse dado de baja sourceforge.

 

http://fbexport.sour...opy-manual.html

 

:sad:


  • 0

#6 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 21 julio 2015 - 06:54

Saludos.

 

Cuando me he visto en la necesidad de hacer algo como esto he utilizado IBDataPump, pero como mencionas que no tiene soporte UTF-8 pues ni modo; IbExpert (no sé si en la versión personal lo soporte)  en la opción Tools --> Extract Metadata la segunda pestaña (Data Tables) puedes extraer la data de las tablas que especifiques.

 

No tengo a mano el EMS SQL Manager para Interbase/Firebird pero se que ellos tienen como parte de su producto la exportación de data a diferentes formatos, no se si en la versión gratuita de este producto o versión de prueba tenga disponible dicha opción.

 

Gracias, quería generar un script que lo puediera automatizar por si hay que repetirlo, pero creo que esta va a ser la opción más fácil.


  • 0

#7 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 22 julio 2015 - 05:53

Bueno, después de generar un Script con sentencias INSERT INTO XXX VALUES (XXXX) mediante el Extract Metadata de IB-Expert, me he encontrado con los mismos errores que con el IB-DataPump.

 

Aparentemente el problema está en que al convertir una cadena UTF-8 a ISO8859-1 (es la página en que está codificada mi base de datos) el resultado es más largo que el original, con lo que no cabe dentro del tamaño del campo. Los caracteres especiales se convierten a varios símbolos extraños.

 

Ejplo. Esta cadena UTF-8 : 8.60(180º) * 8.00(90º) es convertida así a ISO8859-1 : 8.60(180º) * 8.00(90º)

 

Lo que he hecho es aumentar el tamaño de los campos destino, para que quepan las cadenas más largas. De esta forma incluso puedo utilizar IBDataPump, puesto que el CharacterSet UNICODE_FSS reconoce cadenas UTF-8 (es una versión antigua de UTF-8 que no tiene validación de errores, ...., pero que para el caso de solo lectura me sirve igualmente).

 

Ya he podido incorporar los datos a mi base de datos. El único problema es que en la conversión de Unicode a ISO8859-1 me ha añadido esos caracteres extraños, y queda un poco confuso para el usuario (imagino que al ser Unicode una página de códigos más amplia, esos caracteres no tienen correspondencia y sale lo que sale).


  • 0

#8 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 mensajes
  • LocationMisiones, Argentina

Escrito 22 julio 2015 - 07:02

Buscando, hallé esta utilidad, quizá te sirva:

http://full-convert.softonic.com/

Aunque es de prueba

 

Convierte entre bases de datos. No viene mal probarla.

Busqué alternativas para las aplicaciones de EMS, pero solo se encuentran para SQL Server.

 

Saludos


  • 1




IP.Board spam blocked by CleanTalk.