Hola amigos:
Necesito incluir en mi programa la capacidad de reparar y compactar la base de datos que utiliza, creada con Access 2010.
He revisado el foro y en la web, pero lo que he encontrado apunta a Access 2007 o anterior, por lo que no es posible utilizar la librería JRO_TLB ya que Office 2010 no la incorpora.
He utilizado el siguiente código que obtuve en la web, pero no funciona, no da error pero tampoco compacta la BD.
Código Delphi
[-]function CompactarBDAccess(DB: string) : boolean;
var
v: OLEvariant;
begin
Result:= True;
try
v := CreateOLEObject('JRO.JetEngine');
try
v.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB,
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB + 'x;Jet OLEDB:Engine type=5');
DeleteFile(DB);
RenameFile(DB + 'x', DB)
finally
v := Unassigned;
end;
except
Result:= False
end;
end;
y para llamarla utilizo:
Código Delphi
[-]CompactarBDAccess(ExtractFilePath(Application.ExeName) + 'Dicom Data\Base de Datos\Dicom_be.mdb');
¿Puede alguien orientarme al respecto?
Saludos y muchas gracias