Compactar Tabela MSACCESS 97
Boa noite amigo, preciso urgentemente saber se é possível e como faço para compactar tabelas de um banco de dados tipo MSACCESS com delphi 6.
Jair Santana
Curtidas 0
Respostas
Zorfael
09/12/2003
http://delphi.about.com/library/weekly/aa091801a.htm
[quote:6e1746623d=´Jair Santana´]Boa noite amigo, preciso urgentemente saber se é possível e como faço para compactar tabelas de um banco de dados tipo MSACCESS com delphi 6.[/quote:6e1746623d]
[quote:6e1746623d=´Jair Santana´]Boa noite amigo, preciso urgentemente saber se é possível e como faço para compactar tabelas de um banco de dados tipo MSACCESS com delphi 6.[/quote:6e1746623d]
GOSTEI 0
Marcelo-rs
09/12/2003
Eu estou usando esta com Delphi 6 e MDB do Access 97, porem para compactar a DB precisa estar com o aplicativo desconectado do mesmo!
Espero ter ajudado
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:\Projeto\db1.mdb´);
finally
Screen.Cursor := crDefault;
end;
ShowMessage(´Compactação completa.´);
end;
end.
Espero ter ajudado
GOSTEI 0
Nigro
09/12/2003
Tente o componente free VCLZip
GOSTEI 0