Ver Mensaje Individual
  #1  
Antiguo 23-09-2005
Alfonso Jurado Alfonso Jurado is offline
Registrado
 
Registrado: sep 2005
Ubicación: Granada
Posts: 6
Reputación: 0
Alfonso Jurado Va por buen camino
Problema con compactación y reparación de B.D en Access

Hola, tengo un problemilla, a ver si alguien me puede ayudar...
El caso es que tengo desarrollada una aplicación en Delphi que trabaja con una base de datos en access, esta base de datos tiene una clave (se que es un aprotección muy burda, pero es principalmente para que los clientes no la abran y la trasteen), mi problema es que tengo un apartado que se encarga de compactarla y repararla y cuando lo hace crea una copia optimizada de la versión en access que tiene la clave, con el inconveniente de que la deja sin clave y por tanto sin protección alguna...
La función que utilizo es la siguiente:

Código Delphi [-]
 Function TCompactarReparar.CompactarYReparar(RutaBD: String): Boolean;
 Var
   ObjetoOLE: OLEvariant;
 begin
   Result:=True;
   try
     ObjetoOLE:=CreateOLEObject('JRO.JetEngine');
     try
       ObjetoOLE.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Jet '
         + 'OLEDB: Database Password=ISO9001;Data Source='+RutaBD,
           'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
             +RutaBD+'x;Jet OLEDB:Engine type=5');
       DeleteFile(RutaBD);
       RenameFile(RutaBD+'x',RutaBD)
     finally
       ObjetoOLE:=Unassigned
     end;
   except
     Result:=False
   end;
 end;
En el último paso elimino el fichero original y renombro el fichero access "copia" por le nombre del original, en este proceso pierdo la clave de acceso, y me interesaria que esto no ocurriese...
Si alguien es tan amable de echarme un cable se lo agradecería eternamente.

Última edición por dec fecha: 24-09-2005 a las 07:13:44. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita