Intenta a ver con este
Alguien me envió este código y la verdad no se si funcione.
Intenta funcionar con este a ver. Debes poner JRO_TLB en el uses.
Código:
procedure TfMainForm.P_CompactarClick(Sender:TObject);
var
JE : TJetEngine; //Jet Engine
sdbTemp : WideString; //TEMP database
sdbName : WideString;
const
SProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;DataSource=';
begin
inherited;
DBM.ADOConnection.Close;
sdbName := g_sAppPath + g_sPrograma + '.mdb';
sdbTemp := g_sAppPath + 'TEMP_' + g_sPrograma +'.mdb';
if FileExists(sdbTemp) then
DeleteFile(sdbTemp);
JE := TJetEngine.Create(Application);
try
try
JE.CompactDatabase(SProvider + sdbName, SProvider + sdbtemp);
DeleteFile(sdbName);
RenameFile(sdbTemp, sdbName);
except
on E:Exception do
ShowMessage(E.Message);
end;
finally
JE.FreeOnRelease;
ShowMessage('Proceso terminado.');
Close;
end;
end;
__________________
Cielos azules
|