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