|
Как заблокировать константу от чтения? |
☑ |
0
RomaH
naïve
10.03.16
✎
12:26
|
Есть процесс - получает константу и увеличивает её на 1
как запретить другим процессам читать эту константу в этот промежуток времени?
|
|
1
Cyberhawk
10.03.16
✎
12:27
|
У, остальные константы тоже придется блокировать
|
|
2
франц
10.03.16
✎
12:27
|
семафор какой клепаешь чтоли?
|
|
3
NcSteel
10.03.16
✎
12:28
|
блокируй.
|
|
4
RomaH
naïve
10.03.16
✎
12:29
|
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
Блокировка = Новый БлокировкаДанных;
КБ = Блокировка.Добавить("Константа.ИспользоватьЗаметки");
КБ.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
ИспользоватьЗаметки = Константы.ИспользоватьЗаметки.Получить();
Сообщить(ИспользоватьЗаметки);
ЗафиксироватьТранзакцию();
без проблем читабю паралельно
|
|
5
Господин ПЖ
10.03.16
✎
12:30
|
>У, остальные константы тоже придется блокировать
с какой-то версии константы сидят по отдельным таблицам...
|
|
6
Cyberhawk
10.03.16
✎
12:32
|
(5) Збс, не знал, для файловой самое оно
|
|
7
RomaH
naïve
10.03.16
✎
12:33
|
(5) так от чтения есть возможность заблокировать константу?
|
|
8
Живой Ископаемый
10.03.16
✎
12:34
|
2(5) Не в таблицах, а в записях... раньше были в одной таблице, в одной записи, тока в разных полях.
|
|
9
RomaH
naïve
10.03.16
✎
12:34
|
о, заработало
|
|
10
Cyberhawk
10.03.16
✎
12:35
|
(8) А, ну тогда на файловой легче не стало
|
|
11
Господин ПЖ
10.03.16
✎
12:37
|
(8) не кури больше... с 8.2.14 таблицы разные... ибо сваливать опять все в одну - это бред
|
|
12
RomaH
naïve
10.03.16
✎
12:53
|
только получилось немного не то - не дает блокировку вторую установить
а вот как прочитать не дать, как это в справке написано.
Описание:
Предназначен для явной блокировки данных от чтения или изменения другими сессиями.
|
|
13
floody
10.03.16
✎
20:31
|
(8) проверьте это утверждение, удивитесь
|
|
14
floody
10.03.16
✎
20:33
|
(12) ну и в чем проблема? Перед чтением тоже устанавливай блокировку.
|
|
15
Necessitudo
10.03.16
✎
20:44
|
Так у тебя 8.3 без режима совместимости и управляемый режим блокировок?
|
|
16
Азазелло
10.03.16
✎
20:46
|
Может, банальность, но код в (0) случаем не из вышестоящей или неявной транзакции вызывается, начатой в автоматическом режиме блокировки?
|
|
17
Garykom
гуру
10.03.16
✎
20:52
|
Если для решения задачи не хватает одной константы, то всегда можно решить задачу взяв ДВЕ константы.
Одна из которых будет семафором для возможности изменения другой.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший