FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Tenes razon, en el entusiasmo se me pasó ese detalle.
Y grabarlo a disco no me sirve porque entraría en la misma cuestión que quiero controlar. Serviria alguna forma de tabla en memoria que la pueda editar en tiempo de diseño y se grabe en el exe. |
#2
|
||||
|
||||
¿Pero tú quieres que se actualicen los programas de los usuarios o sus bases de datos?
|
#3
|
||||
|
||||
Yo uso un sistema muy simple.
Incrusto como una constante el archivo con las migraciones dentro del .exe, en este formato:
Eso lo comparo contra la version de la BD y simplemente es partir el archivo, chequear la version y recorrerlo.
__________________
El malabarista. |
#4
|
|||
|
|||
Cita:
Yo al principio en el form principal, tenia un procedimiento que chequeaba la version de la BD y luego ejecutaba las correcciones necesarias. Luego como el procedure iba creciendo lo saqué a una unit individual para no verlo y que no moleste. Y estaba buscando ideas para optimizarlo. |
#5
|
|||
|
|||
Cita:
En cuanto a la logica para el chequeo, se me ocurre en el source, del form principal, luego de crear los datos y conexion a bd.
Mi procedure Actualiza lo vengo haciendo asi pero es un lio
Cada procedure carga en un TFDQuery las sentencia SQL necesarias para actualizar a la version en cuestión. Funciona, pero me parece que no es prolijo. |
#6
|
||||
|
||||
Cita:
Cita:
De hecho, yo lo pongo como una función de la BD:
Para la logica, lo que hago es que hago in split del SQL en cada "GO"
Y parser el segmento de "version". Esto es rust pero la lógica creo se entiende: Código PHP:
__________________
El malabarista. |
#7
|
|||
|
|||
Que tal colegas, finalmente le he dado un giro a todo este tema y lo he resuelto de la siguiente manera, que me resulta transparente para chequear y agregar cambios y practico.
A todo lo planteado anteriormente lo reoslvi, creando una tabla SQLITE con un campo ID (UNTEGER) y STRING (BLOB). En el ID voy agregando el Nº de version de la base de datos, y en el campo STRING, agrego el string SQL necesario para pasar de la version anterior. Suponiendo que la version inicial es 1 en la tabla tengo
A la tabla Sqlite le iré agregando todos los cambios siguientes Luego en delphi, DESCARGO A ARCHIVO EL SQLITE.DB
luego de crear el programa, cargo a un query el archivo sqlite Hago una consulta para obtener el Nº de version actual y lo guardo en la variable DBVer y luego ejecuto una funcion que hace todo el chequeo y luego continua la carga del sistema
De esa forma he resuelto sin tener que parsear textos ni recorrer archivos manualmente Cada vez que agrego un cambio debo agregar a los recursos del ejecutable la nueva tabla SQLITE con los cambios Espero sirva de ayuda Gracias a todos por sus aportes |
#8
|
|||
|
|||
Cita:
Lo que busco es optimizar el actualizador de base de datos, que de momento lo tengo en un procedimiento en el exe y le voy agregando comprobaciones de versión para que actualice la BD segun corresponda para quedar siempre al dia. (misma version de requisitos del exe con la version de la BD). |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
[FireDAC] Desconexión a la Base de Datos | MAXIUM | Conexión con bases de datos | 4 | 14-06-2021 20:12:59 |
Filtrar Base de Datos FireDac | pokexperto1 | Conexión con bases de datos | 6 | 03-10-2015 00:26:07 |
Controlar Cambios en la Base de Datos | afunez2007 | MS SQL Server | 5 | 12-07-2013 18:04:12 |
Chequear integridad base de datos | Toni | Firebird e Interbase | 4 | 09-01-2013 20:02:34 |
Como hacer conexión de una base de datos en firebird. | Niiña | Conexión con bases de datos | 5 | 28-11-2011 22:43:04 |
|