Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2007
Avatar de carlosegs11
carlosegs11 carlosegs11 is offline
Miembro
 
Registrado: jul 2004
Posts: 41
Poder: 0
carlosegs11 Va por buen camino
Talking Eliminar Tablas y tamaño en Base de datos

Hola,

Tengo una base de datos Access 2003. A medida que voy insertando tablas por lógica el tamaño de la base de datos va aumentando.

El problema esta en que cuando yo elimino todas las tablas de la base de datos y la dejo en blanco, ella conserva el tamaño de cuando tenía todas las tablas.

Se debe borrar algo o como hago para que la base de datos tenga el peso verdadero en Kb?

Espero haberme explicado.

Muchas gracias.

Carlos E.
Responder Con Cita
  #2  
Antiguo 15-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Ok

Ok, dale: Heramientas, Utilidades de la base de datos, Compactar y reparar base de datos...

Se que se puede por codigo pero no lo he chKd0.

Saludos.
Responder Con Cita
  #3  
Antiguo 15-06-2007
Avatar de carlosegs11
carlosegs11 carlosegs11 is offline
Miembro
 
Registrado: jul 2004
Posts: 41
Poder: 0
carlosegs11 Va por buen camino
Muchas gracias. Funcionó bien. Que bueno tenerlo por código desde delphi.
Responder Con Cita
  #4  
Antiguo 17-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Para servirte

Cita:
Empezado por carlosegs11
...Que bueno tenerlo por código desde delphi...
No fue sarcasmo verdad? si necesitas el código nos avisas para ver que se puede hacer!

Saludos.
Responder Con Cita
  #5  
Antiguo 09-07-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
Aqui hay una alternativa para compactar un mdb
Código Delphi [-]
function PackMdbFile(_Name, _pass: String; Verbose:Boolean): Boolean;
var
   JE : TJetEngine; //requiere importar la biblioteca de tipos MS Jet & Replications Objects
   mdbDest,ConStrOri, ConStrDest: WideString;
   sizei,sizef:Real;
begin
   sizei:=FileSizeByName(_Name)/1024;
   //la base de datos no se compacta sobre si misma sino creauna nueva, compactada
   //por lo cual definiremos como se llamará esa base de datos
   mdbDest:=ExtractFilePath(_name)+'\tmp~'+ExtractFileName(_Name);
   ConStrOri:= 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+
                _Name+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System'+
               ' database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password='+_pass+
               ';Jet OLEDB:Engine Type=5;Jet OLEDBatabase Locking Mode=1;Jet OLEDB:Global'+
               ' Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New '+
               'Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:'+
               'Encrypt Database=False;Jet OLEDBon''t Copy Locale on Compact=False;Jet'+
               ' OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

   ConStrDest:= 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+
                 mdbDest+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System'+
                ' database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password='+_pass+
                ';Jet OLEDB:Engine Type=5;Jet OLEDBatabase Locking Mode=1;Jet OLEDB:Global'+
                ' Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New '+
                'Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:'+
                'Encrypt Database=False;Jet OLEDBon''t Copy Locale on Compact=False;Jet'+
                ' OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
   //verificamos si la base de datos destino existe, si es asi, la eliminamos
   if FileExists(mdbDest) then DeleteFile(mdbDest);
   JE:= TJetEngine.Create(Nil);
   try
      try
        //se comprime la base de datos original en la destino, ojo, la base de datos
        //original no debe estar en uso por nadie mas
        JE.CompactDatabase(ConStrOri, ConStrDest);
        sizef:=FileSizeByName(mdbDest)/1024;
        //eliminamos la base de datos original, o mejor, le cambiamos el nombre
        DeleteFile(_Name);
        //renombramos la nueva base de datos compactada como se llamaba la base de datos original
        RenameFile(mdbDest, _Name);
        if Verbose then ShowMessage('Hecho, mdb compactada de '+FloatToStr(sizei)+' Kb a '+FloatToStr(sizef)+' Kb');
        PackMdbFile:=True;
      except
        on E:Exception do
        begin
           __Error:=('Excepcion :'+E.Message);
           PackMdbFile:=False;
        end;
      end;
   finally
      JE.FreeOnRelease;
   end;
end;

oorales como hago para que dentro del codigo los : D no se conviertan en ????
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
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
Referencia a muchas tablas de la base de Datos dcidt MySQL 7 29-09-2005 17:04:49
Como eliminar la solicitud de password de una base de datos MRSAM Conexión con bases de datos 0 07-01-2005 16:34:11
Pregunta Sobre Firebird y Tamaño de la base de Datos Abel Garcia Firebird e Interbase 1 12-11-2004 16:11:03
Problemas con el tamaño de la base de datos rogeriobeltran Firebird e Interbase 0 11-03-2004 16:33:37


La franja horaria es GMT +2. Ahora son las 09:09:21.


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