Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Compactar tablas paradox - Delphi
Lenguaje de programación Borland Delphi


Para compactar las tablas paradox (quitar definitivamente los registros marcados como eliminados); en el USES del formulario o unidad donde insertemos la función declararemos las unidades: DB, BDE, DBTables, la función es la siguiente:

procedure Compactar (const ADatabase, ATable:String);
var
  ADB:TDataBase;
  SaveKC:Boolean;
  PdxStruct: CRTblDesc;
begin
  with TTable.Create(nil) do
  try
    DataBaseName:=ADataBase;
    TableName:=ATable;
    Exclusive:=True;
    Open;
    ADB:=DataBase;
    SaveKC:=ADB.KeepConnection;
    ADB.KeepConnection:=True;
    try
      Close;
      FillChar(PdxStruct,SizeOf(PdxStruct),0);
      StrPCopy(PdxStruct.szTblName,ATable);
      PdxStruct.bPack:=True;
      Check(DbiDoRestructure(ADB.Handle,1,@PdxStruct,nil,nil,nil,False));
    finally
      ADB.KeepConnection:=SaveKC;
    end;
  finally
    Free;
  end;
end;
Para utilizarla, pondremos un botón en un formulario y en el evento click del mismo añadiremos:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Compactar ('NombreAlias', 'nombreTabla.db');
end;
NOTA: en 'NombreAlias' podemos poner directamente la ruta donde se encuentre la tabla a compactar.




Publicado el: 2003-09-17

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A