Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1139562422
SPOK
2006-02-10 12:07
2006.02.26
Очень туго с СИ


4-1133374095
dimka_sh
2005-11-30 21:08
2006.02.26
Окно на несколько секунд


2-1139483293
Tigraman
2006-02-09 14:08
2006.02.26
Сжатие


15-1139380388
race1
2006-02-08 09:33
2006.02.26
Бесплатная программа


1-1138215770
SErgeus
2006-01-25 22:02
2006.02.26
Интересный вопрос