Форум: "Базы";
Текущий архив: 2002.06.27;
Скачать: [xml.tar.bz2];
ВнизСжатие базы 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c