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 versiones anteriores de Access, por lo que no me es posible utilizar la librería JRO_TLB ya que mi 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.
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:
delphi
CompactarBDAccess(ExtractFilePath(Application.ExeName) + 'Base de Datos\Estudios.mdb');
¿Puede alguien orientarme al respecto?
Saludos y muchas gracias