Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Восстановление базы Access [D6, Access]


Monk ©   (2003-06-10 11:18:00) 

Мастера помогите. Как восстановить посыпавшуюся базу програмным путем (из Делфи).


NewD   (2003-06-10 12:17:00) [1]

Кстати RepairDatabase восстанволаввает не всегда.
У меня когда вылетала RepairDatabase не смог восстановить , а CompactDatabase восстановил.


Monk   (2003-06-10 12:13:00) [2]

Ага значит Compact должен делать и Repair, бо база 2000я.Спасибо.


sniknik   (2003-06-10 12:08:00) [3]

можеш использовать RepairDatabase

var DBEngine: Variant;
begin
DBEngine:= CreateOleObject("DAO.DBEngine.35");
try
ADOConnection1.Close;
DBEngine.RepairDatabase(MyBase);
finally
DBEngine:= Null;
end;
end;

но в "36" его уже нет, "35" не поддерживает 2000ю базу а в хелпе написано
RepairDatabase Method
Note The RepairDatabase method is no longer available, but listed for backwards compatibility. Use the CompactDatabase method instead.


Monk   (2003-06-10 12:01:00) [4]

А разве Compact восстанавливает, а не только сжимает?


sniknik   (2003-06-10 11:58:00) [5]

var JROje: Variant;
begin
JROje:= CreateOleObject("JRO.JetEngine");
try
ADOConnection1.Close;
JROje.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+MyBase+";",
"Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+TmpBase+";"+
"Jet OLEDB:Encrypt Database=True");
DeleteFile(MyBase);
RenameFile(TmpBase, MyBase);
finally
JROje:= Null;
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо