Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизСжатие БД ! Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c