Las encontre y estos son los procedimientos
//ESTE ES PARA LAS TABLAS DBASE
procedure TFormPrincipal.PackDBFTable(const ADatabaseName, ATableName: string);
begin
with TTable.Create(Self) do
try
DatabaseName := ADatabaseName;
TableName := ATableName;
Exclusive := True;
Open;
if DbiPackTable(Session.FindDatabase(ADatabaseName).Handle,
Handle, '', '', True) <> DBIERR_NONE then
raise EDatabaseError.Create('Error en compresión de la Tabla '+ uppercase(Atablename))
else
showmessage('Compresion de la Tabla '+uppercase(Atablename)+' realizada con éxito');
finally
Free;
end;
end;
//ESTE ES PARA LAS TABLAS PARADOX
procedure TFormPrincipal.PackPxTable(const ADatabaseName, ATableName: string);
var
ADB: TDatabase;
PdxStruct: CRTblDesc;
begin
with TTable.Create(Self) do
try
DatabaseName := ADatabaseName;
TableName := ATableName;
Exclusive := True; //tIENE QUE ESTAR EN MODO EXCLUSIVO SI NO FALLA
Open;
ADB := Session.FindDatabase(ADatabaseName);
ADB.KeepConnection := True;
Close;
FillChar(PdxStruct, SizeOf(PdxStruct), 0);
StrPCopy(PdxStruct.szTblName, ATableName);
PdxStruct.bPack := True;
if DbiDoRestructure(ADB.Handle, 1, @PdxStruct, nil, nil, nil, False)
<> DBIERR_NONE then
raise EDatabaseError.Create('Error en compresión de la tabla '+uppercase(Atablename))
else
ADB.Connected := False;
showmessage('Compresion de la Tabla '+uppercase(Atablename)+' realizada con éxito');
finally
Free;
end;
end;