Вниз
Скачать: CL | DM;

Как закрыть БД?   Найти похожие ветки 

 
типа прогер   (2006-02-06 11:17) [0]

В общем такая ситуация, мне из программы надо заархивировать всю базу...
я сначала закрываю БД, потом архивирую, потом открываю для дальнейшей работы...

var command: string;
begin
 TbStatus.Close;
 TbMain.close;
 TbConf.Close;
 TbPersonal.Close;
 TbExport.Close;
 command:="rar.exe a -ieml bases.rar .\bases\*.*";
 WinExec(PChar(command),SW_HIDE);
 TbStatus.Open;
 TbMain.Open;
 TbConf.Open;
 TbPersonal.Open;
 TbExport.Open;

В файле bases.rar находится только часть файлов базы. Остальное пишет занят процессом... Delphi при этом я вообще закрывал, результат тот же.
пробовал вместо Close, ACTIVE:+FALSE тоже самое.
Как же мне всетаки освободить их от процесса и что я делаю не так?


 
msguns ©   (2006-02-06 11:23) [1]

Судя по всему, парадокс (дибэйс), т.е. BDE
В подобных случаях, когда требуется вся "База" (например, для копирования, архивирования и т.д.), следует пользоваться объектом TDataBase. Через него закрывая ВСЕ таблицы, да и собственно, сессию с данной БД. Это поможет "убрать" неявно используемые ссылки на таблицы БД (например, мастер-детал)


 
umbra ©   (2006-02-06 11:28) [2]

надо дождаться, пока рар закончит архивацию, а затем открывать таблицы. С WinExec это невозможно. Надо пользоваться функцией CreateProcess


 
Desdechado ©   (2006-02-06 14:11) [3]

позакрывай таблицы в design-time



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.027 c
1-1138122130
Dudee
2006-01-24 20:02
2006.02.26
открыть файл своей программой


2-1139486895
Dmitrij_K
2006-02-09 15:08
2006.02.26
MS Word, TypeText и ограничение 64кб


6-1132160039
mj
2005-11-16 19:53
2006.02.26
Освоение принципов работы протокола прикладного уровня HTTP


6-1132064989
Kullibin
2005-11-15 17:29
2006.02.26
Работа с компонентами FastNet


2-1138118946
Алексей Петухов
2006-01-24 19:09
2006.02.26
Снова OLE




   Наверх