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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Estructura de la base de datos

Hola compañeros, estoy en el proceso de terminar el programa de la empresa (la cual sigue a la venta) y se me plantea una duda, y os pregunto si podéis ayudarme a encarrilarla.

El tema es el siguiente, el programa hará cierres de año, (por el usuario) donde debería crear la estructura de la base de datos, sin datos y luego pasar los datos de años interiores, quedando la base de datos general con los datos básicos (clientes, productos, etc, inclusive lotes y demás) y la nueva con los datos de los años anteriores, más los básicos, pero ademas dar la opción, de los lotes con más de 3 años y que su estocaje sea 0 eliminarlos en la original también.

Se que podría hacer una copia de la base de datos y luego eliminar en la original los datos antiguos (esta es mi otra opción), pero seria interesante obtener desde una unit la base de datos, tablas, generadores, indices, etc, como mantenimiento e inclusive para la instalación del programa en otra empresa (instalación nueva).

Otra opción que he barajado es hacer una copia de la base de datos y borrar tabla por tabla todos los datos, con lo que tendría una bd limpia sin datos y por lo tanto de poco tamaño, se puede vaciar todas la tablas por sql?

Pues eso compañeros si podéis ayudarme e indicarme si es posible obtener la estructura de la base de datos, como hacerlo y luego usarlo desde una unit, o que método me aconsejáis si no.

Como siempre gracias por vuestra ayuda.

Hecho delphi 2010 y Firebird
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 21-07-2012 a las 09:57:48. Razón: Datos de interés que faltaban
Responder Con Cita
  #2  
Antiguo 21-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola José Luís.

Cita:
se puede vaciar todas la tablas por sql?
Proba de este modo:
Código Delphi [-]
procedure TForm1.btnBorrarTablasClick(Sender: TObject);
var
  i: Integer;
  TS: TStrings;
begin
  TS:= TStringList.Create;
  try
    with IBQuery1 do
    begin
      SQL.Clear;
      SQL.Add('SELECT RDB$RELATION_NAME AS TBLNAME ');
      SQL.Add('FROM RDB$RELATIONS ');
      SQL.Add('WHERE RDB$VIEW_BLR IS NULL ');
      SQL.Add('AND (RDB$SYSTEM_FLAG IS NULL OR RDB$SYSTEM_FLAG = 0)');
      Open;
      while not Eof do
      begin
        TS.Add(FieldByName('TBLNAME').AsString);
        Next;
      end;
      for i:= 0 to TS.Count -1 do
      begin
        Close;
        SQL.Text:= 'DELETE FROM ' + TS[i];
        ExecSQL;
      end;
    end;
  finally
    TS.Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 21-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aunque para borrar todo, yo prefiero crear una base de datos nueva. En realidad, siempre mantengo una 'plantilla' (una copia de la BD vacía), que la uso para crear empresas nuevas, solamente es necesario copiar 'plantilla.fdb' al nuevo nombre, ejemplo: 'datos2012.fdb' y al año siguiente se copia a 'datos2012.fdb', etc.
Naturalmente, que 'plantilla.fdb' hay que tenerla actualizada cuando se hagan cambios en la estructura de la BD.
Responder Con Cita
  #4  
Antiguo 21-07-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Otra opción es extraer los metadatos.
Generar una nueva bbdd vacía y con ellos generar todas las tablas, triggers, SP, ...
Luego, llenar las tablas que quieras.

Para mí es la forma más limpia de hacerlo.

Ahora no sé exactamente cómo se puede obtener, pero te aseguro que hay componentes que pueden extraerte esa información.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 21-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por fjcg02 Ver Mensaje
Ahora no sé exactamente cómo se puede obtener, pero te aseguro que hay componentes que pueden extraerte esa información.
Hay varias formas, por ejemplo, con gbak, con isql y creo recordar que también con algunos componentes.
Responder Con Cita
  #6  
Antiguo 21-07-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Gracias por vuestra ayuda, como siempre, seguiré indagando a ver como puedo hacerlo, pero tomo nota de vuestros comentarios.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #7  
Antiguo 23-07-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Muchas gracias a todos, ahora estoy valorando las diversas opciones.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
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
Actualizar estructura de base de datos sin perder datos ManuelPerez Firebird e Interbase 8 20-10-2010 02:41:19
estructura de aplicación/base de datos Galahad Firebird e Interbase 5 08-08-2008 10:07:10
Estructura Base de Datos mjjj Firebird e Interbase 6 22-10-2007 12:16:39
Actualizar estructura de la Base de Datos Durbed Firebird e Interbase 11 02-10-2006 17:31:34
Copiar estructura de una base de datos a una nueva en Delphi?? burasu Conexión con bases de datos 0 30-12-2004 09:35:51


La franja horaria es GMT +2. Ahora son las 04:30:27.


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