Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Planificando Como Funcionaria Un Actualizador De Base De Datos???
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Planificando Como Funcionaria Un Actualizador De Base De Datos??? 
 
en el programa taller que estoy usando actualmente en mi trabajo con éxito mas halla de que programaticamente  hablando la programación no se la correcta, veo que son necesarias dos cosas, construir un actualizador o importador de base de datos anteriores a la nueva estructura de la nueva base de datos.
pensando en esto llego a la conclusion que en las bases de datos tengo que identificar cada base de datos así el importador o actualizador sabe que método usar para hacer la operación de pasar los datos de la vieja base de datos a la nueva.

como hacer para identificar una base de datos??
haciendo una tabla que identifique la base de datos?

el esquema seria algo así:

identificar base de datos
usar un selec case para identificar la base de datos y aplicar el método importador o actualizador correspondiente.


estos razonamientos son correctos? o como se hace habitualmente para actualizar bases de datos que son diferentes en su estructura interna???
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Planificando Como Funcionaria Un Actualizador De Base De Datos??? 
 
¿Qué motor usas?
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Planificando Como Funcionaria Un Actualizador De Base De Datos??? 
 
shordi escribió: [Ver mensaje]
¿Qué motor usas?


sqlite3
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Planificando Como Funcionaria Un Actualizador De Base De Datos??? 
 
Citar:
estos razonamientos son correctos? o como se hace habitualmente para actualizar bases de datos que son diferentes en su estructura interna???

Esta operación, que sólo se hace cuando se cambian versiones o se tienen que corregir fallos de diseño (los peores), no se puede estandarizar.
En producción, con bases de datos vivas, lo normal es hacer un programa actualizador que se tiene que probar mucho y bien para asegurarse que no tiene errores porque el día que lo ejecutas si hay algo mal te toca hacer una regresión en la base de datos y en la versión del programa sustituido y es un follón según qué casos.
El programa de actualización es de "una sola ejecución". Con MySQL puedes hacer consultas sobre dos bases simultáneamente, con lo que el proceso se simplifica, pero con SQLite sólo puedes trabajar con una base cada vez (al menos yo no conozco ninguna herramienta que sea capaz de hacer una consulta que use campos de bases de SQLite distintas).

Entonces sólo puedes hacer dos cosas: o trabajas con dos bases de datos (dos conexiones) distintas y haces el traspaso vía procesos en gambas tipo:
Result1=conexion1.Exec(Select campoA,campoB from tabla_vieja)
while result1.available
   Result2=conexion2.create(tabla_nueva)
   result2!camponuevo1=result1!campoA
   resul2!camponuevo2=result1!campoB
   result2.Update
   result1.movenext
wend
 


o exportas los datos de la base vieja (en csv o sql) y los importas con nombres nuevos en la nueva. Luego pasas los datos de las viejas a las nuevas con sentencias sql tipo:

INSERT INTO tablanueva1 (camponuevo1,camponuevo2) SELECT campoA, campoB FROM tabla_vieja
 


y luego borras las tablas viejas (no olvidar hacer un vacuum de la base después).

No hay una manera estándar ni sencilla. Yo prefiero la segunda forma, porque es mucho más rápida (gambas a veces se eterniza en este tipo de procesos) pero según quieras hacer cosas con los campos viejos (separar su contenido en varios, operaciones matemáticas, etc. etc.) a veces SQL no es suficiente y es necesario el uso más claro y potente de los Result.

Saludos.
 



 
última edición por shordi el Lunes, 09 Marzo 2015, 20:28; editado 3 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Hago Para Colocar A Una Persona En Un... jousseph General 2 Jueves, 22 Julio 2010, 06:36 Ver último mensaje
jousseph
No hay nuevos mensajes Como Respaldar Una Base De Datos mym769 Aplicaciones/Fragmentos de Código 1 Jueves, 05 Abril 2012, 10:50 Ver último mensaje
shordi
No hay nuevos mensajes Como Puedo Modificar Datos De La Base De D... metalgearxd General 2 Viernes, 01 Marzo 2013, 13:40 Ver último mensaje
metalgearxd
No hay nuevos mensajes Como Funcionaria El Tanteador En Un Torneo... v3ctor General 16 Viernes, 06 Junio 2014, 17:03 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron