Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-07-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
hacer un traspaso

Hola, me gustaria saber como puedo hacer para traspasar los datos de una bd hecha en interbase a otra.
El problema que tengo es que un programa que tenia le he hecho modificaciones y he cambiado estructuras de tablas, etc y querria conservar los datos que se puedan.
He oido que hay programas que lo hacen, o bien debo hacer yo mismo uno.
La cosa es que como nunca lo he hecho, no se ni como empezar.
Bueno, pues espero que alguien me pueda indicar como puedo hacer el traspaso.

Un saludo y gracias a todos.
Responder Con Cita
  #2  
Antiguo 16-07-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
No se si no habra nadie que me pueda ayudar, pero tan solo pido unas ideas generales de como puedo empezar a hacer esto.
Bueno, un saludo y gracias de todos modos.
Responder Con Cita
  #3  
Antiguo 16-07-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Poder: 22
burasu Va por buen camino
Hola Acrophet, de interbase a interbase no he hecho muchas importaciones, pero entre diferentes pases de datos como Access y DBase a interbase sí.

Verás primero tienes que analizar las estructuras de las tablas y comprobar los datos que te van a valer y cuales no, así como los valores que serán obligatorios en la nueva estructura de las tablas.

Luego simplemente haces un programa que abra las dos BD y recorrar las tablas de ambas e ir haciendo procesos de inserción de los datos y añadiendo aquellos valores que son obligatorios pero que no arrastras desde la otra tabla. Debes tener en cuenta el orden de las referencias para que no te de error el programa.

No se si me he explicado bien, pero espero haberte ayudado.
Responder Con Cita
  #4  
Antiguo 16-07-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Muchas gracias por la respuesta burasu. Habia imaginado que seria algo asi, pero como ya dije, no tengo ni idea ya que nunca lo he hecho, pues no estaba seguro del todo.
Me pondre a hacerme un programita que haga el traspaso, a ver que sale.

Y a modo de curiosidad, esto cada vez que hay que hacer, uno se debe currar un programa aposta; o por el contrario hay alguna manera de hacer algo mas o menos "standar", para que te valga para futuros traspasos???

Un saludo y gracias por todo.
Responder Con Cita
  #5  
Antiguo 16-07-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Poder: 22
burasu Va por buen camino
No es tan dificil una vez que te has bautizado en las importaciones, yo tampoco sabia hacerlas y aquí donde trabajo ya llevo varios traspasos.

En cuanto a la estandarización del traspaso de datos, hombre cada traspaso dependerá siempre de las estructuras de las tablas, yo ya desde el primero me hice varias funciones y procedimientos que me pudieran ser genericos para poder cambiar simplemente los nombres de los campos.

Pero como te he dicho, si cambian mucho las estructuras siempre tendrás que partir de cero, aunque a partir de esta primera aplicación podrás partir de ella para hacer el resto.

Salu2.
Responder Con Cita
  #6  
Antiguo 16-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Para una futura ocasión... no hace falta hacer los cambios en una estructura limpia.

Podes ir haciendo Alter, insert, drop sobre las tablas con datos. Si cambias de tipos de datos a campos pas pequeños (que no lo permite el motor), regularmente vas a tener que cambiar de nombre a la columna vieja, crear la nueva y voltearle los datos, para luego eliminar la última:

Imaginate una tabla con un campo desc, que es varchar(100) y algo como:

Código SQL [-]
Alter table producto alter column desc to desc_old;
Alter table producto add desc varchar(75);

Update producto 
  set desc = substr(desc_old, 1, 75);

Alter table producto drop desc_old;

Es un poco mas trabajoso cuando haces tus scripts de actualización... pero siempre funcionará y no tenes que estar haciendo luego procesos de migración a de tu sistema a tu mismo sistema... yo eso me lo reservo cuando traigo datos de otro lado.

Además, de esta forma, podes llegar a tener varias (a veces muchas) instalaciones, y el trabajo siempre estará hecho desde el principio y tus actualizaciones serán mucho mas sencillas.

Es cuestión, primero, de ser ordenado, y luego de tener un poco de ingenio y paciencia para descubrir la forma de actualizarlo todo (que todo se puede) sobre los datos vivos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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


La franja horaria es GMT +2. Ahora son las 03:36:14.


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