|
Как заблокировать константу от чтения? | ☑ | ||
---|---|---|---|---|
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
|
Если для решения задачи не хватает одной константы, то всегда можно решить задачу взяв ДВЕ константы.
Одна из которых будет семафором для возможности изменения другой. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |