Oper01 |
Отправлено: 25.07.2004, 16:16 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 145
|
Дайте часть кода для сжатии базы Access, я так и не смог это сделать. А нужно очень, т.к. размер файла БД составляет порядка 10 Мб, а в день таких файлов создаётся порядка 40 шт. А в месяц сколько получится ? Страшно представить... |
|
Valdemar |
Отправлено: 26.07.2004, 08:20 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Я делал так:
CODE | AnsiString path=ExtractFilePath(Application->ExeName);
if (!DirectoryExists(path+"backup"))
{
CreateDir(path+"backup");
}
CopyFile((path+"base.mdb").c_str(),(path+"backup\base.mdb").c_str(),false);
Variant JetEng;
JetEng = CreateOleObject("JRO.JetEngine");
WideString InputDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"base.mdb;Jet OLEDB:Database Password=12345";
WideString OutputDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"base1.mdb;Jet OLEDB:Database Password=12345";
JetEng.OleFunction("CompactDatabase",InputDB,OutputDB);
JetEng = Unassigned;
CopyFile((path+"base1.mdb").c_str(),(path+"base.mdb").c_str(),false);
DeleteFile(path+"base1.mdb");
|
Перед сжатием я делал резервную копию. |
|
** Oper01 |
Отправлено: 26.07.2004, 09:46 |
|
Не зарегистрирован
|
Спасибо, буду пробовать |
|
|