Ver Mensaje Individual
  #4  
Antiguo 07-05-2003
pgraciap pgraciap is offline
Miembro
 
Registrado: may 2003
Ubicación: Tampico, Tamaulipas [Mexico]
Posts: 39
Reputación: 0
pgraciap Va por buen camino
Lightbulb Respuesta a compactar una mdb con contraseña

Nota importante hay que poner en cualquiera de las clausulas USES, comobj.

Con esto ya algunos tendremos como terminar nuestro, proposito de compactar las bases de datos con contraseña.

Para compactar una Base de Datos en Access

var Dir: string; // contiene el directorio
// en dónde se encuentra el fichero de datos


function GetEngine(var DbEngine: Variant): Boolean;
begin
Result := False;
try
DbEngine := CreateOleObject('Dao.DbEngine.35'); // Para Access'97
except
try
DbEngine := CreateOleObject('Dao.DbEngine.36'); // Para Access 2000
except
ShowMessage('No es posible inicializar el DAO.'#13 +
'Microsoft DAO debe de estar instalado en este equipo.'#13 +
'Para instalarlo, debes saber que forma parte de '+
'MS Access, Visual Basic, MS Office, etc.');
Exit;
end;
end;
Result := VarType(DbEngine) = VarDispatch;
end;


function CompactDataBaseDao(DbAccessName: String): Boolean;
var
DbEngine: Variant;
TmpFile: String;
begin
Result := False;
if Dir = '' then Exit;
TmpFile := Dir + 'TmpAccess.Mdb';
if Pos( '.MDB', UpperCase(DbAccessName)) = 0 then
DbAccessName := DbAccessName + '.MDB';
if not FileExists(DbAccessName) then Exit;
try
if not GetEngine(DbEngine) then Exit;
if FileExists(TmpFile) then
DeleteFile(TmpFile);
// Antes de compactar la Base de Datos, ésta se repara.
DbEngine.CompactDataBase(DbAccessName, TmpFile);
DeleteFile(DbAccessName);
RenameFile(TmpFile, DbAccessName);
// En caso de caida del sistema aquí, tendremos la base compactada en TmpFile.
Result := True;
except
Exit;
end;
end;

Nota:
Esta parte es para compactar las mdb sin contraseña:
DbEngine.CompactDataBase(DbAccessName, TmpFile);.
Y esta otra es para las que tienen contraseña:
DbEngine.CompactDataBase(DbAccessName, TmpFile, NULL, 0, ';pwd=password');.

Esta ultima parte es gracias a nuestros amigos: delphi.com.ar y Rox77.

Espero les funcione a mucha gente al igual que a un servidor...
Saludos y Gracias.....
__________________
Have a nice day :)
Responder Con Cita