Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2019
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
firebird en varias campañas

Hola tengo Delphi 10 y trabajo con Firebird 2.5, tengo estructurado la base de datos en directorios así la campaña 2.018 en el directorio Datos18, la campaña 2.019 en el directorio Datos19, el problema es que si yo modifico la estructura añadiendo o quitando campos de la campaña 2.019, ya no podría trabajar con la campaña 2.018 por que me daría error al no existir los campos nuevos que he añadido o quitado en la 2.018.

No sé si existe alguna otra manera de estructurarlo, o eso tiene que ser así.

Gracias.
Responder Con Cita
  #2  
Antiguo 24-06-2019
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Entendemos que tienes un problema....pero la verdad como que es muy local tu problema...empezando que nos explicaras que es "CAMPAÑA" a que te refieres con esto?.

Ahora, porque se tendría que cambiar las estructuras de las bases?
que factores (de que depende), determinan esos cambios en la estructura?
No sería mas fácil 1 sola base y que los registros pertenecientes a 2018 o 2019, lo identificaras por medio de un campo?

Mas información para poderte ayudar entre todos.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #3  
Antiguo 24-06-2019
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Una Campaña es como una año natural, la única diferencia es que en vez de ir de Enero a Diciembre (Año Natural) va de de un mes del año en curso al mismo mes anterior del año siguiente, puede ser Agosto-17 a Julio-18 o Septiembre-18 a Agosto del año 19, pero para no liar y simplificar tomamos un año natural, así los datos están ubicados por directorios año 2018 Directorio (Datos18), año 2019 (Datos19), y así sucesivamente.

La idea de añadir un campo a la base de datos con el año está bien, pero al final se acumularían una ingente cantidad de datos que ralentizaría mucho la lectura de estos datos.

Como ejemplo tenemos en los programas de Contabilidad, los datos de cada año están separados por directorios cada año uno, y el programa te da a elegir a qué año quieres ir, abriendo uno u otro directorio y cuando vienen las actualizaciones con nuevos campos se puede abrir sin problemas los datos de cualquier año anterior.

Es por eso mi pregunta la de poder modificar la base de datos con nuevos campos, pero que no diera error al abrir otros años anteriores, no sé dónde podrá estar el secreto.
Responder Con Cita
  #4  
Antiguo 24-06-2019
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Yo, al igual que pretendes hacer tú, tengo una base de datos diferente por campaña, y mantengo siempre la misma estructura de tablas y campos en todas las bases de datos del histórico, sino va a ser casi imposible que mantengas con el mismo ejecutable la compatibilidad, y no te salten errores por falta de campos o renombrado de los mismos.
Responder Con Cita
  #5  
Antiguo 24-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro, hay que actualizar todas las bases de datos.
No hay secreto alguno.
Responder Con Cita
  #6  
Antiguo 24-06-2019
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
No entiendo muy bien WHILENOTEOF, quieres decir que mantienes la misma estructura de campos y tablas en todas las campañas, y si por circunstancia tienes que añadir un campo a una tabla en la última campaña para adaptarla a nuevas circunstancias no lo harías entonces, o crearías una tabla nueva supongo en la base de datos y la relacionarías.
Responder Con Cita
  #7  
Antiguo 24-06-2019
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Cita:
Empezado por GINMARMENOR Ver Mensaje
No entiendo muy bien WHILENOTEOF, quieres decir que mantienes la misma estructura de campos y tablas en todas las campañas, y si por circunstancia tienes que añadir un campo a una tabla en la última campaña para adaptarla a nuevas circunstancias no lo harías entonces, o crearías una tabla nueva supongo en la base de datos y la relacionarías.
No, sí que lo haría, es decir añades el campo a la misma tabla en todas las base de datos. Cada vez que haces un cambio en los metadatos, lo actualizas en todas las bases de datos. Yo utilizo el database comparer que te genera un script con las diferencias entre dos bases de datos, lo ejecutas y ya las tienes iguales (en tablas, campos, triggers, procedures, etc).
Responder Con Cita
  #8  
Antiguo 25-06-2019
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Eso sería ideal, cómo podría hacerlo o dónde podría verlo, Metadatos?
Responder Con Cita
  #9  
Antiguo 25-06-2019
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Cita:
Empezado por GINMARMENOR Ver Mensaje
Eso sería ideal, cómo podría hacerlo o dónde podría verlo, Metadatos?
Bueno metadatos hace referencia a la estructura de la base de datos (tablas, campos, trigers, etc). Busca Database Comparer VCL en Google y darás con una página que tienen unos componentes (Clever ) para hacer el database comparer y también un ejecutable (para uso no comercial …) que te hace los mismo (sin necesidad de implementarlo con los componentes). Registras una base de datos master y una que quieres comparar con ésta, al ejecutar la comparación se genera un script con las diferencias en la estructura (metadatos), si lo ejecutas haces que las dos bases de datos ya tengan la misma estructura.

Esto lo podrías tener también acumulando los scripts de actualización de la base de datos que hayas ejecutado en la última, y lo aplicas a todas.
Responder Con Cita
  #10  
Antiguo 25-06-2019
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Lo haré a ver si lo consigo

Muchas Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
cambiar año de varias fechas firebird KOVNEO Firebird e Interbase 5 04-03-2016 01:57:13
Empezando con Firebird y con varias dudas... Delphitest Firebird e Interbase 19 28-10-2014 02:27:05
DUDA trabajar con varias sesiones en FireBird JordiP Firebird e Interbase 14 14-06-2010 16:19:02
Aplicacion campañas de cereales analia1979 Varios 5 19-07-2007 10:46:29
varias en 1 Patricio Redes 7 26-04-2007 02:00:01


La franja horaria es GMT +2. Ahora son las 18:45:00.


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