Показать сообщение отдельно
Старый 17.05.2012, 08:45   #7  
Dark Light is offline
Dark Light
Участник
 
64 / 49 (0) +++
Регистрация: 17.02.2009
Адрес: Омск
Цитата:
Сообщение от Corel Посмотреть сообщение
Попробовал - не то, т.к. в таком случае отменяются и транзакции, создаваемые обработкой (для записи в журнал).
Здесь лучше использовать класс UserConnetion. Он создает отдельное подключение к БД, и тогда данная схема сработает
X++:
Connection    con = new UserConnection();

ttsbegin;

con.ttsbegin();

//SQL запрос
...
//SQL запрос

//Обработка в Аксапте
...
//Обработка в Аксапте

con.ttsabort();

ttscommit;
Только тут нужно будет ещё сделать блок try/catch, чтобы в случае ошибки в catch'е вызвать con.ttsabort().

Цитата:
Сообщение от Corel Посмотреть сообщение
То есть, тут смысл такой: запросом к SQL создаются записи в таблице блокировок, чтоб аналогичные одновременно работающие обработки не мешали друг другу, создаются строки журнала, после чего идёт откат транзакции по таблице блокировок.
А из Аксапты доступа к данной таблице нет? Ведь гораздо будет проще в конце операции просто удалять нужную запись из LocksTable.

Последний раз редактировалось Dark Light; 17.05.2012 в 08:53.