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

Вниз

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

 
zergey   (2003-09-30 18:44) [0]

Вопрос несколько месяцев назад поднимался на форуме, но найти ту ветку я что-то не смог. Может напомните: как программно сжать базу данных *.mdb.
Заранее спасибо


 
Е-Моё имя ©   (2003-10-01 09:09) [1]

V:=CreateOleObject("jro.JetEngine")
V.CompactDatabase(Src,Dest)


 
zergey   (2003-10-01 20:33) [2]

>2Е-Моё имя
Пишу как в хелпе по Аксесу:
v.CompactDatabase
("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:\1.mdb",
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:\2.mdb")
А получается ошибка: "Невозможно найти устанавливаемый ISAM"
Не подскажешь, в чем может быть дело?


 
kraabs   (2003-10-02 01:24) [3]

Недавно у самого стояла такая задачка.
Завтра обязательно скину исходничек, т.к. он у меня на работе Пока.


 
Snake   (2003-10-02 06:19) [4]

Наслаждайся ;)

Procedure CompactDatabase(DatabaseName:String;DestDatabaseName:String="";Password:String="");
Const
Provider = "Provider=Microsoft.Jet.OLEDB.4.0;";
Var
TempName : Array[0..MAX_PATH] of Char; // имя временного файла
TempPath : String; // путь до него
Name : String;
Src,Dest : WideString;
V : Variant;
begin
try
Src := Provider + "Data Source=" + DatabaseName;
if DestDatabaseName<>"" then
Name:=DestDatabaseName
else begin
// выходная база не указана - используем временный файл
// получаем путь для временного файла
TempPath:=ExtractFilePath(DatabaseName);
if TempPath="" Then TempPath:=GetCurrentDir;
//получаем имя временного файла
GetTempFileName(PChar(TempPath),"mdb",0,TempName);
Name:=StrPas(TempName);
end;
DeleteFile(PChar(Name));// этого файла не должно существовать :))
Dest := Provider + "Data Source=" + Name;
if Password<>"" then begin
Src := Src + ";Jet OLEDB:Database Password=" + Password;
Dest := Dest + ";Jet OLEDB:Database Password=" + Password;
end;

V:=CreateOleObject("jro.JetEngine");
try
V.CompactDatabase(Src,Dest);// сжимаем
finally
V:=0;
end;
if DestDatabaseName="" then begin // т.к. выходная база не указана
DeleteFile(PChar(DatabaseName)); //то удаляем не упакованную базу
RenameFile(Name,DatabaseName); // и переименовываем упакованную базу
end;
Application.MessageBox("Сжатие базы банных успешно завершено","",
MB_ICONINFORMATION+MB_OK+MB_APPLMODAL);
except
// выдаем сообщение об исключительной ситуации
on E: Exception do begin StopWait; ShowMessage(e.message); end;
end;
end;


 
Е-Моё имя ©   (2003-10-02 07:40) [5]

танкисты на форуме по базам? оригинально...


> "Невозможно найти устанавливаемый ISAM"

поищи в яндексе, найдешь решение


 
savva ©   (2003-10-02 09:43) [6]

> Snake (02.10.03 06:19) [4]

можно было и просто ссылку дать

http://delphibase.endimus.com/?action=viewfunc&topic=baseaccess&id=10165
http://delphibase.endimus.com/?action=viewfunc&topic=baseaccess&id=10303


 
zergey   (2003-10-02 18:19) [7]

Всем спасибо.



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
6-74347
Atatoly
2003-08-25 15:05
2003.10.23
Socket


3-74053
Shaman
2003-10-02 16:09
2003.10.23
FastReport


7-74485
opoloXAI
2003-08-10 13:27
2003.10.23
Как разложить байт по-битно?


6-74348
shark
2003-08-26 20:22
2003.10.23
онлайновая игра бес сервера


3-74056
Vemer
2003-10-02 18:05
2003.10.23
Глюки TDBLookupComboBox.