Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-89028
fliz
2002-05-24 17:23
2002.06.27
НОВЫЕ хохмы про программистов


14-89007
lipskiy
2002-05-22 22:36
2002.06.27
Вот уж такого я не ожидал :( {Снова про базу готового кода UBPFD}


3-88739
kioto
2002-06-01 20:27
2002.06.27
Как из DBGrid-а перенести данные в существующий файл Excel ?


6-88978
heruvim4ik
2002-04-18 02:02
2002.06.27
Работа с TNMSMTP


7-89048
star
2002-03-29 15:40
2002.06.27
Как получить доступ к FAT диска ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский