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

Вниз

Сжатие базы Access   Найти похожие ветки 

 
yozhik   (2002-05-30 15:16) [0]

Подскажите плз, как можно сжать базу Access, другими средствами(программами и т.д.) кроме встроенного в Access


 
Kuusiniemi ©   (2002-05-30 15:37) [1]

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;


 
Kuusiniemi ©   (2002-05-30 15:41) [2]

Да, JRO_TLB.pas получается при импортировании библиотеки типов от файла Program Files\Common Files\System\ADO\msjro.dll


 
yozhik   (2002-05-30 15:46) [3]

а JRO_TLB где откопать?


 
Kuusiniemi ©   (2002-05-30 16:20) [4]

Я ж написал - при импортировании библиотеки типов он в директории Imports сам появится. Импортирование делается через меню "Project/Import Type Library". Там в списке надо найти "Microsoft Jet and Replication Objects 2.x Library (Version 2.x)" и нажать кнопочку "Create Unit".


 
yozhik   (2002-05-30 16:39) [5]

Сорри, траблы с Инетом были и я ответ не видел :)


 
yozhik   (2002-05-30 16:51) [6]

выдает ошибку "Не был произведен вызов CoInitialize"?


 
Kuusiniemi ©   (2002-05-30 17:05) [7]

Угумс... вперед всего вызовите CoInitialize(NIL), а последней командой CoUninitialize. А в Uses добавьте ActiveX. Это вызовы инициализации COM. Компоненты это сами делают, а если компонентов нет, приходится вручную вызывать.


 
yozhik   (2002-05-30 17:24) [8]

1. После сжатия файл не открывается :(
2. После сжатия файл становится больше чем был :(( (до 98 К после 130 К)


 
Kuusiniemi ©   (2002-05-30 17:32) [9]

А может у Вас сначала файл был Access 97, а на машине, где Вы сжатие запускаете, стоит Access 2000 и после сжатия 2000 и получается??? Ясно дело, что он больше и что Вы его открыть не можете...


 
yozhik   (2002-05-30 17:40) [10]

нет проверялось все на одной машине с Access 97 :(


 
111   (2002-05-30 17:42) [11]

Microsoft.Jet.OLEDB.4.0 <- это 2000


 
yozhik   (2002-05-30 17:53) [12]

а для 97 ??


 
yozhik   (2002-05-31 11:29) [13]

Если я ставлю Microsoft.Jet.OLEDB.3.5 то он ругается говорит класс не зарегистрирован ?????


 
Бежечаночка ©   (2002-05-31 12:25) [14]

А почему ты не хочешь запустить access изпод Delphi-приложения в тихом режиме с нужными установками (сжатие базы)? Если интересно, пиши на мыло, отвечу.


 
zx ©   (2002-05-31 14:25) [15]

>Бежечаночка © (31.05.02 12:25)
А если его нету на машине:(((


 
Бежечаночка ©   (2002-05-31 14:33) [16]

См. сообщения в этой конфе: проверялось все на машине с Access97 :))


 
yozhik   (2002-05-31 16:36) [17]

Действительно, как правльно заметил zx, Access отсутствует :( а сжимать надо ....
Под Access2000 - приведенный код работает и удовлетворяет требованиям, но надо для Access97 :(


 
Kuusiniemi ©   (2002-06-01 11:41) [18]

> yozhik
А по-моему не "Microsoft.Jet.OLEDB.3.5", а "Microsoft.Jet.OLEDB.3.51".


 
Dennn_is   (2002-06-03 10:26) [19]

можно использовать компонент KADAO


 
yozhik   (2002-06-03 11:14) [20]

а где его взять??


 
zx ©   (2002-06-03 11:25) [21]

http://www.delphi.pari.bg/



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

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

Наверх




Память: 0.51 MB
Время: 0.017 c
3-88767
sergey32
2002-06-05 10:10
2002.06.27
Кто-нибудь знает как подконнектится к базе UNIFY


1-88907
Сатир
2002-06-14 15:24
2002.06.27
Определение события


3-88766
Perec
2002-06-05 09:56
2002.06.27
Изменение наименования поля таблицы через системные таблыцы


1-88858
ec
2002-06-14 17:20
2002.06.27
Динамически создоваемые компоненты и их удаление


3-88757
whois
2002-06-04 17:38
2002.06.27
ещще раз JPEG в БД