compactacao de banco access

13/05/2003

2

Boa Tarde Galera

Por favor se alguem tiver alguma funcao para compactação e recuperacao de banco de dados access ou so compactação de banco
ou se tem outra forma de fazer isso


Responder

Posts

14/05/2003

Cyber Dark

unit Unit1; 

interface 

uses 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
StdCtrls; 

type 
TForm1 = class(TForm) 
Button1: TButton; 
procedure Button1Click(Sender: TObject); 
private 
{ Private declarations } 
procedure Access_Compact(const aAccess: string); 
public 
{ Public declarations } 
end; 

var 
Form1: TForm1; 

implementation 

uses ComObj; 

{$R *.DFM} 

procedure TForm1.Access_Compact(const aAccess: string); 
const 
bak_ext = ´.$$$´; 
stAccessDB = ´Provider=Microsoft.Jet.OLEDB.4.0;´ + 
´Data Source=¬s´; 
var 
JetEngine: Variant; 
TempName: string; 
begin 
TempName := ChangeFileExt(aAccess, bak_ext); 
DeleteFile(TempName); 
JetEngine := CreateOleObject(´JRO.JetEngine´); 
try 
JetEngine.CompactDatabase(Format(stAccessDB,[aAccess]),Format(stAccessDB,[TempName])); 
DeleteFile(aAccess); 
RenameFile(TempName, aAccess); 
finally 
JetEngine := Unassigned; 
end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
Screen.Cursor := crHourglass; 
try 
Access_Compact(´C:\Meus documentos\db1.mdb´); 
finally 
Screen.Cursor := crDefault; 
end; 
ShowMessage(´Compactação completa.´); 
end; 

end. 


Esta função funciona perfeitamente para compactar arquivo *.mdb ou seja... banco de dados access... porem o banco de dados nao pode estar sendo usado no momento da compactação...
qualquer coisa posta ai!


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar