Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Сжатие БД !   Найти похожие ветки 

 
D3viL   (2004-08-27 09:07) [0]

Как сжать и восстановить Базу Acess.
 1)При удалении данных размер базы не изменяется даже если в базе 1 запись.
 2)База может весить очень много (2Гб).
 
   В Acess"e есть менюшка:
   "сервис>служебные программы>сжать и восстановить базу"
    при выполнении бд становиться сжатой,
 как сделать такое в моей проге (в Делфи 7)!


 
46_55_41_44 ©   (2004-08-27 09:26) [1]

var
  je  : Variant;
  Dest,Src : WideString;
  curBase : String;
begin
 if MessageBox(Application.Handle, PChar("Do you really want to Compact database?"), PChar("RRProjects"),MB_YesNo) = mrNo then
   exit;
  AdoConnection.Close;//Close ADO Connection
 curBase := "Путь к базе\Имя.mdb";

 try
   Screen.Cursor := crHourGlass;
   Src := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + curBase;
   Dest := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExtractFilePath(curBase) + "\_pack$.mdb";
  try
    je := CreateOleObject("JRO.JetEngine");
  except
    MessageBox(Application.Handle, PChar("Cannot create JetEngine object!"), PChar("Error"),MB_ICONINFORMATION);
    exit;
  end;
   je.CompactDatabase(src, dest);
   DeleteFile(curBase);
   RenameFile(ExtractFilePath(curBase) + "\_pack$.mdb", curBase);
 finally
   AdoConnection.Close;
   screen.Cursor := crDefault;
 end;


 
46_55_41_44 ©   (2004-08-27 09:29) [2]

Да кстати выдрал это из своей проги... работает!!:)


 
Erik1   (2004-08-30 17:48) [3]

Лучше использовать MSJet.
{ Microsoft DAO 3.6 Object Library }
{ Version 5.0 }

GUID_DAO36: TGUID = (D1:$100; D2:0; D3:$10; D4:($80,0,0,$AA,0,$6D,$2E,$A4));

_DBEngine = interface(_DAO)
   ["{00000021-0000-0010-8000-00AA006D2EA4}"]
procedure CompactDatabase(const SrcName, DstName: WideString;DstLocale, Options, SrcLocale: OleVariant); safecall;
Также может понадобится
procedure RepairDatabase(const Name: WideString); safecall;

Это прямой интерфейс!



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
1-1094736375
SMT
2004-09-09 17:26
2004.09.26
Передача массива чисел из прораммы с строку листа Excel


14-1094559838
}|{yk
2004-09-07 16:23
2004.09.26
Влияние изменения интеллектуального капитала


1-1094807172
Zhekson
2004-09-10 13:06
2004.09.26
Центрирование в Мемо


4-1092140092
serg128
2004-08-10 16:14
2004.09.26
Как программно выключить аппаратное ускорение экрана?


1-1094646334
Cosinus
2004-09-08 16:25
2004.09.26
External exception C000001D