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

Вниз

Операции с таблицами БД   Найти похожие ветки 

 
Татьяна   (2008-09-03 07:31) [0]

Подскажите пожалуйста, каким образом можно закрыть файл таблицы БД чтобы можно было запустить архивацию файла. Методы CLOSE и ACTIVE компонента Table не срабатывают.


 
evvcom ©   (2008-09-03 08:26) [1]

а что такое "запуск архивации файла"?
Напрягаю телепатор после отпуска. Это архивирование WinRar-ом, WinZip-ом или им подобными? Ну так они что-нибудь пишут о причинах?

> Методы CLOSE и ACTIVE компонента Table не срабатывают.

Active - не метод, а свойство. Close - да, метод. Но он срабатывает. То, что ему положено делать, он делает. Почему же не срабатывает?


 
Татьяна ©   (2008-09-03 08:56) [2]

Да, архивировать хочу WinRARом. А причину пишет, что файл занят другим приложением.


 
Anatoly Podgoretsky ©   (2008-09-03 09:12) [3]

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


 
Татьяна ©   (2008-09-03 09:27) [4]

То есть, если я хочу заархивировать таблицы при работающем приложении, то надо сделать копии таблиц и их заархивировать?


 
Anatoly Podgoretsky ©   (2008-09-03 09:46) [5]

> Татьяна  (03.09.2008 9:27:04)  [4]

Не просто копии, с помощью процедур ОС, а копии с помощью движка, для БДЕ это dbiCopyTable - копирует все семейство, требует блокировки на чтение. Подробности в справке по БДЕ, там же пример.


 
Anatoly Podgoretsky ©   (2008-09-03 09:49) [6]

Мне кажется, что ты хочешь архивировать всю базу?
Стоит подумать о других способах, например в проводнике или написание второго приложения, которое гарантирует правильность и все равно, копировать в другую папку, и только потом ее архивировать.


 
Сергей М. ©   (2008-09-03 10:05) [7]


> Методы CLOSE и ACTIVE компонента Table не срабатывают


Установи св-ва Session.Active и Database.Connected в False  и би хэппи)


 
Anatoly Podgoretsky ©   (2008-09-03 10:20) [8]

> Сергей М.  (03.09.2008 10:05:07)  [7]

Для БДЕ не обязательно, некоторые блокировки снимаются только после закрытия приложения, особенно если оно не настроено и приложение написано без учета этого.


 
oldman ©   (2008-09-03 10:22) [9]


> Anatoly Podgoretsky ©   (03.09.08 09:49) [6]
> и все равно, копировать в другую папку, и только потом ее
> архивировать.


Поддерживаю безоговорочно


 
brother ©   (2008-09-03 10:23) [10]

работающую базу не архивируют! только ее копию) +1 к [6]


 
Татьяна ©   (2008-09-03 10:46) [11]

Всем спасибо за помощь. Я все поняла


 
quart   (2008-09-03 10:52) [12]

close;
flushbuffers?


 
brother ©   (2008-09-03 10:58) [13]

> Всем спасибо за помощь. Я все поняла

эх, если бы это было так....


 
oldman ©   (2008-09-03 10:59) [14]


> Татьяна ©   (03.09.08 10:46) [11]
> Всем спасибо за помощь. Я все поняла


Такие ветки так просто не закрываются...
Мы еще продолжим, будь уверена! Заходи, если что.


 
Anatoly Podgoretsky ©   (2008-09-03 11:43) [15]

> quart  (03.09.2008 10:52:12)  [12]

Это как раз наглядный пример неправильной настройки БДЕ


 
quart   (2008-09-03 11:48) [16]


> Anatoly Podgoretsky ©   (03.09.08 11:43) [15]

А что в настройках неправильно?


 
Anatoly Podgoretsky ©   (2008-09-03 12:01) [17]

> quart  (03.09.2008 11:48:16)  [16]

LOCAL SHARE
Если оно настроено, то никаких команд сохранения буферов давать не надо.
В справке смотреть бессмысленно, там этого нет, поскольку это побочный эффект, иначе чем задумывалось, кстати вся часть справки по LOCAL SHARE - сплошная мифология от Борланд, подлежит выкидыванию и переосмысливанию, даже TI грешит неточностями, хотя корректировалось.


 
MsGuns ©   (2008-09-03 15:53) [18]

Если это парадокс, то, насколько мне известно, существуют только один способ надежно заблокировать архивируемые таблицы от постороннего доступа - это полный их захват. После этого - для каждой Select * from с переименованием Answer в "родное" имя в другом каталоге. После отработки всех запросов содержимое "другого" катагога архивируется. все таблицы разблокируются.



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

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

Наверх




Память: 0.51 MB
Время: 0.019 c
15-1219433767
{RASkov}
2008-08-22 23:36
2008.10.12
Математика


15-1219138424
MBo
2008-08-19 13:33
2008.10.12
Вот как люди, всю душу вкладывая, переменные "отчищают" ;)


2-1220861648
Nameziz
2008-09-08 12:14
2008.10.12
Поиск


15-1219304588
TRSteep
2008-08-21 11:43
2008.10.12
vbs скрипт и принтеры


2-1220825872
Point
2008-09-08 02:17
2008.10.12
Запрос sql