Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2005
Alfonso Jurado Alfonso Jurado is offline
Registrado
 
Registrado: sep 2005
Ubicación: Granada
Posts: 6
Poder: 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
  #2  
Antiguo 28-09-2005
Alfonso Jurado Alfonso Jurado is offline
Registrado
 
Registrado: sep 2005
Ubicación: Granada
Posts: 6
Poder: 0
Alfonso Jurado Va por buen camino
Como Juan Palomo: Yo me lo guiso, yo me lo como

Ya lo he resuelto...por si a alguien le sirve, es una tonteria solo hay que poner la la password que deseemos, en este caso Iso9001,tanto cuando abrimos la base de datos a compactar,como en la base de datos destino ya compacatada, sería como en la siguiente linea:
Código Delphi [-]
ObjetoOLE.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=Iso9001;Data Source='+RutaBD,'Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=Iso9001;Data Source='+RutaBD+'x;Jet OLEDB:Engine type=5');
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:18:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi