AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2003, 16:37   #1  
edd is offline
edd
Участник
 
81 / 10 (1) +
Регистрация: 20.01.2003
Есть ли в Аксапта семафоры.
Предложите механизм семафоров или блокировок, нужно определять, что данная запись заблокирована кем-то и ее нельзя трогать.
Старый 17.04.2003, 16:59   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Варианты
1. select forupdate в рамках транзакции не позволит никому изменить строку в БД до закрытия транзакции
2. Спец. поле, которое заполняется в начале обработки и очищается по окончанию (+ спец процедура по снятию флага по форс-мажорным событиям)

И то и другое встречается в стандартной функционале
Старый 18.04.2003, 06:19   #3  
edd is offline
edd
Участник
 
81 / 10 (1) +
Регистрация: 20.01.2003
2 Wamr
Не совсем понял насчет forupdate, т.е. если я сделаю select * forupdate InventTable и ничего с ним не буду делать, то никто не сможет его редактировать?

В общем идея такая:
Пишется модуль, при входе в который пользователь блокирует запись в какой то таблице, таким образом можно видеть количество пользователей работающих с данным модулем, и в случае некорректного выхода(перезагрузка) запись автоматом разблокируется.... ну и т.д.
На FoxPro это не составляет проблем, а тут я не знаю как поступить.
Старый 18.04.2003, 11:01   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
1. Если на одном рабочем месте запустить такой job
PHP код:
    InventTable inventTable;
    ;

    
ttsbegin;

    
select forupdate inventTable;
    
Box::warning("Транзакция, однако");

    
ttsabort
то на другом месте при попытке сохранить изменения в inventTable (в первых 10-20 записях) процесс повиснет, а на SQL сервере появятся блокировки. Следовательно, использовать это можно только на кротковременных операциях и выборках по индексам.

2. Не заню, как это было (" в случае некорректного выхода(перезагрузка) запись автоматом разблокируется") в FoxPro.
Аксапта работает с SQL сервером и использует механизмы блокировок и транзакций этого сервера. Для понимания происходящего полезно знать эти механизмы.
Старый 21.04.2003, 14:53   #5  
Мирослав is offline
Мирослав
Участник
 
26 / 10 (1) +
Регистрация: 27.05.2002
Адрес: Санкт-Петербург
Добрый день!

Может быть, кто - нибудь поведает, появилась ли, действительно, большая гибкость в блокировке трансакций (анологичная той, которая предусмотрена в Transact SQL) с выходом версии 3.0.?
__________________
С уважением,

Мирослав Лянцевич
КОРУС Консалтинг I Navision Solution Center
Старый 23.04.2003, 17:23   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Большей гибкости в 3.0 нет. Скорее, большая жесткость: ведь по умолчанию любой insert или update в 3.0 ДОЛЖЕН идти в пределах транзакции.

Отвечая на вопрос edd: есть пример гибкой блокировки без использования средств сервера. Она реализована во всех журналах 3.0. Открывается второе соединение с БД, создается запись в таблице блокировок, а потом программно проверяется.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Есть ли у кого-нибудь такая штучечка? miklenew DAX: Программирование 54 01.06.2015 12:09
Аксапта как фронт-офисное решение в рознице. vc DAX: Функционал 15 11.02.2008 10:42
Аксапта 3.0 SP 3 падает Wamr DAX: Программирование 13 12.10.2004 17:35
Справка в файлах *.chm на русском у кого есть? ture DAX: Функционал 14 18.02.2004 19:21
Что есть для Inernet-а ? bucken DAX: Функционал 6 29.10.2003 12:31
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:52.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.