![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Операции с таблицами БД [D7]
Татьяна © (2008-09-03 07:31:00)Подскажите пожалуйста, каким образом можно закрыть файл таблицы БД чтобы можно было запустить архивацию файла. Методы CLOSE и ACTIVE компонента Table не срабатывают.
MsGuns (2008-09-03 15:53:00) [1]Если это парадокс, то, насколько мне известно, существуют только один способ надежно заблокировать архивируемые таблицы от постороннего доступа - это полный их захват. После этого - для каждой Select * from с переименованием Answer в "родное" имя в другом каталоге. После отработки всех запросов содержимое "другого" катагога архивируется. все таблицы разблокируются.
Anatoly Podgoretsky (2008-09-03 12:01:00) [2]> quart (03.09.2008 11:48:16) [16]
LOCAL SHARE
Если оно настроено, то никаких команд сохранения буферов давать не надо.
В справке смотреть бессмысленно, там этого нет, поскольку это побочный эффект, иначе чем задумывалось, кстати вся часть справки по LOCAL SHARE - сплошная мифология от Борланд, подлежит выкидыванию и переосмысливанию, даже TI грешит неточностями, хотя корректировалось.
quart (2008-09-03 11:48:00) [3]
> Anatoly Podgoretsky © (03.09.08 11:43) [15]
А что в настройках неправильно?
Anatoly Podgoretsky (2008-09-03 11:43:00) [4]> quart (03.09.2008 10:52:12) [12]
Это как раз наглядный пример неправильной настройки БДЕ
oldman (2008-09-03 10:59:00) [5]
> Татьяна © (03.09.08 10:46) [11]
> Всем спасибо за помощь. Я все поняла
Такие ветки так просто не закрываются...
Мы еще продолжим, будь уверена! Заходи, если что.
brother (2008-09-03 10:58:00) [6]> Всем спасибо за помощь. Я все поняла
эх, если бы это было так....
quart (2008-09-03 10:52:00) [7]close;
flushbuffers?
Татьяна (2008-09-03 10:46:00) [8]Всем спасибо за помощь. Я все поняла
brother (2008-09-03 10:23:00) [9]работающую базу не архивируют! только ее копию) +1 к [6]
oldman (2008-09-03 10:22:00) [10]
> Anatoly Podgoretsky © (03.09.08 09:49) [6]
> и все равно, копировать в другую папку, и только потом ее
> архивировать.
Поддерживаю безоговорочно
Anatoly Podgoretsky (2008-09-03 10:20:00) [11]> Сергей М. (03.09.2008 10:05:07) [7]
Для БДЕ не обязательно, некоторые блокировки снимаются только после закрытия приложения, особенно если оно не настроено и приложение написано без учета этого.
Сергей М. (2008-09-03 10:05:00) [12]
> Методы CLOSE и ACTIVE компонента Table не срабатывают
Установи св-ва Session.Active и Database.Connected в False и би хэппи)
Anatoly Podgoretsky (2008-09-03 09:49:00) [13]Мне кажется, что ты хочешь архивировать всю базу?
Стоит подумать о других способах, например в проводнике или написание второго приложения, которое гарантирует правильность и все равно, копировать в другую папку, и только потом ее архивировать.
Anatoly Podgoretsky (2008-09-03 09:46:00) [14]> Татьяна (03.09.2008 9:27:04) [4]
Не просто копии, с помощью процедур ОС, а копии с помощью движка, для БДЕ это dbiCopyTable - копирует все семейство, требует блокировки на чтение. Подробности в справке по БДЕ, там же пример.
Татьяна (2008-09-03 09:27:00) [15]То есть, если я хочу заархивировать таблицы при работающем приложении, то надо сделать копии таблиц и их заархивировать?
Anatoly Podgoretsky (2008-09-03 09:12:00) [16]Вообще то файлы БД не блокируются, может ты не только файлы БД хочешь заархивировать, то для БДЕ это полное закрытие приложения, но именно так и надо делать, поскольку попытка архивации открытой базы очень чревато, данные могут быть в памяти и не сброшены на диск, кроме того ситуация еще хуже, часть данных может быть сброшена, например данные, а индекс или мемо еще нет. Попытка восстановления из подобного архива может плачевно кончиться.
Архивировать на ходу можно, если СУБД понимает теневые копии или в приложение сделан их аналог.
Татьяна (2008-09-03 08:56:00) [17]Да, архивировать хочу WinRARом. А причину пишет, что файл занят другим приложением.
evvcom (2008-09-03 08:26:00) [18]а что такое "запуск архивации файла"?
Напрягаю телепатор после отпуска. Это архивирование WinRar-ом, WinZip-ом или им подобными? Ну так они что-нибудь пишут о причинах?
> Методы CLOSE и ACTIVE компонента Table не срабатывают.
Active - не метод, а свойство. Close - да, метод. Но он срабатывает. То, что ему положено делать, он делает. Почему же не срабатывает?