Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Dado el interés, os dejo aquí la aplicación para leer una Base de Datos Firebird y crear otra con los campos texto con Charset UNICODE_FSS.

Esta aplicación utiliza los componentes FreeIB y está desarrollada en Delphi 6.
Creo que está todo contenido dentro del ZIP.
Además, está la aplicación compilada, lista para utilizar.

Pedirá una base origen y su CharSet.
En mi caso el CharSet es NONE.

La base destino no debería existir, para que la aplicación la cree antes de traspasar los datos de una a otra.

Los Checks arriba a la derecha son todos los datos que se van a traspasar.
Iniciará traspasando los de la primera columna en orden (Generators, Exceptions, Domains, Tables)
Luego hará el "Data Pump" en donde tratará de leer los datos y escribirlos en la base de datos destino.
En este punto podrían darse problemas de "Transliterate". Esto es problemas donde no puede convertir lo que lee en Unicode válido.

Luego de esto, con las tablas pobladas, pasará a crear el resto de estructura de la base (PK, Unique Indices, FK, ...)

Cuando llega a pasar procedimientos, he hecho un algoritmo para tratar de pasarlos en orden de dependencia. Hace cinco pasadas y reordena los procedimientos lo mejor que puede... Espero que no os falle.

A tener en cuenta:
Ya que es un proyecto para mis bases de datos, hay alguna cosa que podría fallar y vuestras bases.

Código Delphi [-]
procedure TFMMain.TraspasarTables;
Si el dominio de un campo de una tabla es IMAGEN, lo crea con el dominio IMAGENES en destino.
Si el dominio de un campo de una tabla es IMAGEN_P, lo crea con el dominio IMAGENES en destino.
Si el dominio de un campo de una tabla es binario (BLOB SUB_TYPE 0), lo crea con el dominio IMAGENES en destino.
Si el dominio de un campo de una tabla es NOTAS_UNICODE, lo crea con el dominio NOTAS en destino.
Si el dominio de un campo de una tabla es PROTECCION, lo crea con el dominio NOTAS en destino.
Si el dominio de un campo de una tabla es APUNTES, lo crea con el dominio NOTAS en destino.
Si el dominio de un campo de una tabla es TEXTO, lo crea con el dominio NOTAS en destino.
Si el dominio de un campo de una tabla es blob tipo texto (BLOB SUB_TYPE 1), lo crea con el dominio NOTAS en destino.

Código Delphi [-]
procedure TFMMain.Pump;
Si el campo se llama ARTICULO reemplazo ñ, Ñ por N. (En mi base de datos, esto es el código de un artículo y no permito esos caracteres.)

Si por algún motivo alguien necesita algo un poco más especial o necesita que quite las transformaciones que he hecho, puede modificar el código y recompilarlo.
Si esto no fuera posible, enviarme un mensaje privado y trataré de adaptar el código.
Si tampoco fuera posible, y sigue fallando nos ponemos en contacto y si me pasáis vuestra base de datos. Con esto seguro que podré hacer las modificaciones necesarias.

Saludos,
Imágenes Adjuntas
Tipo de Archivo: png firebird_clone.png (15,2 KB, 6 visitas)
Archivos Adjuntos
Tipo de Archivo: zip FirebirdClone.zip (387,7 KB, 9 visitas)
Responder Con Cita
  #2  
Antiguo 13-09-2022
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 397
Poder: 16
novato_erick Va por buen camino
Cita:
duilioisola

Si el campo se llama ARTICULO reemplazo ñ, Ñ por N. (En mi base de datos, esto es el código de un artículo y no permito esos caracteres.)
Si tienes razón igual ya no lo permito anivel de interfaz aunque unos usuarios me preguntan porque no lo incluyo pero aunque trate de explicar no entenderán a nivel interno de una DB

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
CharSet Firebird Neeruu Varios 5 03-09-2016 19:17:23
Carácter en Firebird utilizando Charset ASCII novato_erick Firebird e Interbase 7 06-08-2015 19:49:33
Firebird 2.5 UTF8 ander Firebird e Interbase 11 05-06-2013 13:15:07
Firebird 2.5 Utf8 Problema Con La ñ agidar Firebird e Interbase 3 16-08-2011 18:02:16
Firebird 2.5 y UTF8 Chandra_ Firebird e Interbase 14 05-11-2010 20:27:44


La franja horaria es GMT +2. Ahora son las 07:08:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi