Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Вниз

Как заблокировать локальную всю БАЗУ данных   Найти похожие ветки 

 
Num Lock   (2003-02-14 08:45) [0]

Я делаю так:

Database.Exclusive:= True;
Database.Open;

, но другие пользователи и приложения всё равно могут открывать таблицы.


 
VAleksey   (2003-02-14 11:43) [1]

Назначь Exclusive = true всем DataSet - ам


 
Num Lock   (2003-02-14 15:08) [2]

У меня в программе есть процедура проверки таблиц на целостность индексов, и заголовков, и на время выполнения этой процедуры необходимо запрещать другим пользователям доступ к таблицам, поэтому Ваш способ не подойдет. Если в таблице есть повреждение, то Dataset даже не откроется. И это долго - переоткрывать все таблицы (несколько сотен мегабайт). И как в общем случае проверить, что кто то уже подключен к Базе?


 
roadrunner   (2003-02-14 15:59) [3]

если програ подключается через BDE,можно посмотреть через функцию
DbiOpenUserList.В helpe по BDE есть пример.Функция делает таблицу в памяти, где будет список пользователейт пользующихся данной БД(директорией где она хранится)


 
Num Lock   (2003-02-17 09:24) [4]

Спасибо!


 
Anatoly Podgoretsky   (2003-02-17 09:38) [5]

Базой данных для Парадокса является папка (каталог), и естественно ни о каком монопольном доступе и речи быть не может, в то же время далее ты говоришь уже не про базу, а про таблицы.
Можно конечно сделать финт ушами, временно переименовать папку.


 
MsGuns   (2003-02-17 12:12) [6]

>Anatoly Podgoretsky © (17.02.03 09:38)
Это совет - шутка ?

Если после "финта ушами", т.е. переименования, прога не сможет завершиться нормально, то, похоже, чел останется вовсе без ушей (без БД) ;)))


 
Anatoly Podgoretsky   (2003-02-17 12:15) [7]

Ухи будем отрывать программисту за финт


 
Reindeer Moss Eater   (2003-02-17 12:23) [8]

Database1.Exclusive:=True;
//Открыть все таблицы БД.
for i:=0 to Pred(.....) do ....


 
MsGuns   (2003-02-17 12:28) [9]

>Reindeer Moss Eater (17.02.03 12:23)
>//Открыть все таблицы БД.

Ну и что, после этого другие не смогут получить доступ к таблицам ?
ИМХО, надо в цикле ВСЕ таблицы ДО открытия перевести в экслюзив в защищенном блоке. Если хоть одна попытка не удастся, все остальные разблокировать и дать соотв. сообщение, после чего вообще закрыть БД (убрать за собой все следы в .lck)


 
Reindeer Moss Eater   (2003-02-17 12:30) [10]

MsGuns ©
Имелось ввиду то, что для блокирование всей базы данных необходимо открыть монопольно все таблицы.
Вот и все.



 
Num Lock   (2003-02-19 16:08) [11]


> Anatoly Podgoretsky © (17.02.03 09:38)

- Я думаю что под "базой данных" в общем случае понимается совокупность таблиц входящих в неё.
- а финт с переименованием - это круто! Это именно то, что нужно.
1. Пытаюсь переименовать папку
2. Если получается, то делаю то, что мне нужно, и переименовываю обратно.
3. Если при открытии программы оригинальная папка не существует, а существует только временная, то переименовываю её взад, даже можно попробовать повторить выполнение операции



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

Форум: "Базы";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.037 c
14-30049
Карлсон
2003-02-20 16:14
2003.03.10
что за ерунда?


3-29727
asusfi
2003-02-18 17:22
2003.03.10
ТРАНЗАКЦИИ НА СЕРВЕРЕ


1-29881
AlexanderSK
2003-02-26 14:27
2003.03.10
VarArray - глупый вопрос


14-30007
Zhenka
2003-02-19 05:48
2003.03.10
Лич но я долго смеялся над автором вопроса, :)))))


3-29700
vlad40
2003-02-18 15:43
2003.03.10
Можно ли работать с SyBase?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский