Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2013
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 18
afunez2007 Va por buen camino
Lightbulb Controlar Cambios en la Base de Datos

Buenos dias

Quisiera alguien me sugiera como llevo un control de los cambios sufridos a la base de datos segun se va desarrollando la aplicacion.

Por ejemplo: Una Base SQL Server, que contiene tablas de clientes, y en un momento la tabla de clientes sufre un cambio ya sea de longitud o tipo de dato, o un campo nuevo, quisiera que si la proxima vez que se ejecute la aplicacion detecte que faltan estos cambios y ejecute un script para hacer las modificaciones a la BD.

Se me ha estado ocurriendo crear tabla de Version de la BD que contenga un campo que guarde la version del exe y basado en eso que verifique los scripts que falta por ejecutar, sin embargo solo esta como idea no tengo codigo para hacerlo.

Si alguien me puede sugerir ideas como controlar esta situacion, se lo agradecere de sobremanera!

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #2  
Antiguo 11-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hay distintas formas de hacerlo, depende de lo que necesites, puedes hacer algo sencillo o un sistema más completo y complejo.
Puedes guardar en una tabla la versión/subversión de la misma y tu programa, al conectar con la BD, verifica esa versión y actúa en consecuencia.
También puedes tener un programa externo para las actualizaciones, que básicamente le indicas la BD a conectar (o busca todas las que estén en el directorio), va comparando y ejecutando sentencias para convertirla a la última versión.
Las sentencias pueden estar en una BD que va junto al programa de actualización, con los campos habituales: "id, fecha, usuario creador, numero, sentenciasql"
También puedes usar un script en lugar de una BD.
En fin, las opciones son muchas y depende mucho de las necesidades de cada uno.
Responder Con Cita
  #3  
Antiguo 11-07-2013
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 18
afunez2007 Va por buen camino
Lightbulb

Gracias por tus ideas!!

Me abre mas posibilidades para actuar en consecuencia!!

Saludos

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hay distintas formas de hacerlo, depende de lo que necesites, puedes hacer algo sencillo o un sistema más completo y complejo.
Puedes guardar en una tabla la versión/subversión de la misma y tu programa, al conectar con la BD, verifica esa versión y actúa en consecuencia.
También puedes tener un programa externo para las actualizaciones, que básicamente le indicas la BD a conectar (o busca todas las que estén en el directorio), va comparando y ejecutando sentencias para convertirla a la última versión.
Las sentencias pueden estar en una BD que va junto al programa de actualización, con los campos habituales: "id, fecha, usuario creador, numero, sentenciasql"
También puedes usar un script en lugar de una BD.
En fin, las opciones son muchas y depende mucho de las necesidades de cada uno.
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #4  
Antiguo 11-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si necesitas ayuda con algo práctico, ya sabes, aquí estamos.
Responder Con Cita
  #5  
Antiguo 12-07-2013
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Hola.

Por si te sirve de algo yo lo que tengo es un fichero .ini con todas las tablas con sus campos y un procedimiento en el programa que se encarga de chequear si las tablas están conforme a estos campos y si no las adapta.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 12-07-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por afunez2007 Ver Mensaje
Se me ha estado ocurriendo crear tabla de Version de la BD que contenga un campo que guarde la version del exe y basado en eso que verifique los scripts que falta por ejecutar, sin embargo solo esta como idea no tengo codigo para hacerlo.
Pues es bastante habitual y creo que no vas mal encaminado.
Los scripts podrían estar en la propia Base de Datos.
El programa de actualización podría ser uno distinto o el propio de la aplicación (si estás seguro de que no tienes ninguna tabla conflictiva abierta).
cada cambio en la estructura implicaría "subir" un número de versión y apuntar los cambios (scripts) necesarios para esa versión.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Conectar base de datos Firebird con base de datos Oscommerce 2.3.3 Adriadob Firebird e Interbase 11 31-10-2012 12:28:46
Manejo de Subversion - Cambios en linea base andresenlared Varios 2 03-04-2012 19:52:18
Control de cambios en base de datos Interbase dalfina Firebird e Interbase 3 07-08-2007 20:26:07
Algún programa para controlar los cambios David Varios 5 05-04-2007 20:21:22
Refrescar datos de cambios en SQL fcobanda Conexión con bases de datos 1 08-07-2006 22:48:39


La franja horaria es GMT +2. Ahora son las 01:00:12.


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