![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сжатие базы Access [D5, Access]
yozhik © (2002-05-30 15:16:00)Подскажите плз, как можно сжать базу Access, другими средствами(программами и т.д.) кроме встроенного в Access
Kuusiniemi (2002-05-30 15:37:00) [21]Uses JRO_TLB;
Procedure Compact(sDBFileName: AnsiString);
var
AnEngine: IJetEngine;
sTempFileName,
sSourceConn, sDestConn: AnsiString;
ABuffer: array[0..1023] of Char;
begin
// Исходный файл sSourceConn := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sDBFileName + ";";
// Временный файл
SetString(sTempFileName, ABuffer, GetTempPath(SizeOf(ABuffer), ABuffer));
sTempFileName := sTempFileName + "temp.mdb";
DeleteFile(sTempFileName);
sDestConn := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sTempFileName + ";";
// Сжимаем
AnEngine := CoJetEngine.Create;
AnEngine.CompactDatabase(sSourceConn, sDestConn);
// Перемещаем временный файл на место исходного
DeleteFile(sDBFileName);
MoveFile(PChar(sTempFileName), PChar(sDBFileName));
DeleteFile(sTempFileName);
end;