FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Script SQL para actualizar una base de datos
Hola amigos.
Me nace la necesidad de actualizar una base de datos de una aplicación, el asunto es que quiero hacerlo mediante un script al estilo de SQL Server, en donde pueda revisar las tablas y campos para poder actualizar (por lo general agregar campos, vistas, procedimientos almacenados o una tabla) . Este script se descargaría mediante una rutina de actualización de mi aplicación para luego ejecutarla con isql en el equipo. La pregunta es: ¿Se puede hacer esto con firebird o necesito crear un proceso más engorroso para hacer la actualización? o pregunto de otra forma: ¿Existe una mejor forma de lograr esto? Gracias anticipadas. |
#2
|
||||
|
||||
No sé cómo lo haces con la base de datos de la que hablas, pero ten en cuenta que es SQL, o sea, igual, puedes crear un script, obviamente.
|
#3
|
||||
|
||||
En una empresa en la que trabajaba se hacía algo similar a esto. En cada actualización iba incluído (en tu caso se puede descargar de Internet) los Scripts para actualizar la Base de Datos.
Es decir, cada actualización llevaba su Script. Al actualizar se comparaba la versión actual con la nueva y se ejecutaban los Scripts necesarios entre las 2 versiones. Si pasabas de la 1 a la 3, se ejecutaba por orden, el Scrip de la 2 y de la 3. Quien pasaba de la 2 a la 3, sólo ejecutabla el script de la 3. El proceso es sencillo, aunque laborioso.
__________________
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. |
#4
|
||||
|
||||
Creo que encontré la respuesta a la pregunta que NO supe plantear bien... por eso ruego sus disculpas. En el fondo necesitaba saber por ejemplo, si un sentencia if consultando por la existencia de una tabla podia ir fuera de un procedimiento almacenado... la respuesta es no, pero usando EXECUTE BLOCK se soluciona.
Gracias. |
#5
|
||||
|
||||
Muy interesante, nunca he usado esa posibilidad, ni recuerdo haber leido sobre ella.
|
#6
|
||||
|
||||
Intenta no complicarte mucho la vida, respeta el KISS (Keep It Simple, Stupid).
Muchos de los manejadores de BBDD (IBexpert, flamerobin, etc) pueden ir almacenando los cambios que se le van haciendo a una base de datos con el tiempo, así que, en cada actualización, solo debes pillar ese "log en sql" que va haciendo el manejador y lanzarlo en tu sistema de actualización. No necesitas comprobar si tal tabla o cual existe, haz las cosas de forma ordenada y sé consecuente, verás que te quitas muchos problemas de en medio. Quiero decir, "si en la versión anterior no existía la tabla empleados, no hay que andar testeando, ya me estoy basando en el número de versión de la BBDD (por ejemplo)". Saludos y suerte.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Cita:
Gracias a todos. |
#8
|
||||
|
||||
Cita:
Para las actualizaciones utilizo los Scripts de IBExpert, precisamente porqué tienen extensiones para realizar este tipo de condicionales. Pero si con esta construcción se puede utilizar un Script estándar, aceptado directamente por el motor, mejor que mejor. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#9
|
||||
|
||||
Buenos días, quiero agregar otra interrogante al tema de actualizaciones de la base de datos. Supongamos que esta base de datos la atacan multiples usuarios, ¿es necesario o recomendable tener acceso exclusivo a la base de datos para actualizar algunas tablas, o podemos hacerlo mientras esten en uso?
La verdad que lo he hecho un par de veces mediante flamerobin de modificar una tabla, obviamente encomendándome a todos los santos para no tener algun problema. Alguno con más experiencia en este tema puede comentar al respecto. Saludos. |
#10
|
||||
|
||||
Es necesario que no exista nadie más conectados a la base de datos, ten en cuenta que puedes estar haciendo modificaciones en tablas que estén usándose en ese momento y entonces no podrá actualizarse. Es lógico, aunque lo permita (que creo que no) no debe hacerse.
|
#11
|
||||
|
||||
Resp
Si la cosa es manual usa ib experte Menu herramientas/database comparer el resto lo hace el solito. Si no es manual ya debes hacerlo mediante codigo.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#12
|
||||
|
||||
Cita:
Database comparer tiene sus componentes que te permiten realizar la comparación desde tu aplicación de mantenimiento de base de datos, programaticamente, transparente para el usuario, funciona muy bien. Prque tienes una aplicación para realizar mantenimiento... verdad? |
#13
|
||||
|
||||
Resp
Database comparer. Es una opcion de la aplicacion IBExpert. Eso fue lo que escribi.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#14
|
||||
|
||||
Tranquilo campeón... Tambien existe un set de componentes para Delphi muy buenos, database comparer, que permiten que el amigo realice de manera programática estas tareas.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizar estructura de base de datos sin perder datos | ManuelPerez | Firebird e Interbase | 8 | 20-10-2010 02:41:19 |
Error script creacion base de datos | jorgegetafe | MySQL | 13 | 15-01-2008 21:46:23 |
actualización de base de datos desde script | dandia28 | Conexión con bases de datos | 2 | 21-06-2007 02:01:53 |
Actualizar datos de una base de datos en un reporte | Marymania | Impresión | 4 | 27-11-2006 19:47:32 |
Actualizar la Base de Datos. | ramirezjl7 | Firebird e Interbase | 4 | 04-01-2005 08:44:51 |
|