Ver Mensaje Individual
  #1  
Antiguo 04-01-2014
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Reputación: 18
radenf Va por buen camino
Compactar y reparar BD Access 2010

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
Responder Con Cita