30.05.2012, 16:37 | #1 |
MCT
|
CodeAccessPermission::revertAssert(); Баго Фича Ax 40
Столкнулся с такой баго/фичей
X++: connect = new Connection(); connect.ttsbegin(); Stmt = connect.createStatement(); perm = new SqlStatementExecutePermission(sql); perm.assert(); res = Stmt.executeUpdate(sql); connect.ttscommit(); CodeAccessPermission::revertAssert(); // вставка в таблицу AnyTable.clear(); ...... AnyTable.Doinsert(); Если вынести вне блока, то все работает на ура. У меня воспроизводится на ax 40
__________________
Axapta book for developer |
|
31.05.2012, 08:08 | #2 |
Участник
|
Ничего не понятно из примера. Где начинается/заканчивается блок Try/Catch. Что за команда sql выполняется второй раз? Причём тут "вставка в таблицу"?
Понял лишь что есть какая-то проблема с revertAssert. И что она воспроизводится только в комбинации с блоком Try/Catch. |
|
31.05.2012, 12:17 | #3 |
MCT
|
Цитата:
Дело том, что команда sql внутри try catch выполняется ДВА раза. Я это словил, когда туда же добавил вставку в таблицу записи, после вставки команда sql выполнилась еще раз, что несколько странно. ЗЫ Без использования Permission в 3 версии работало нормально.
__________________
Axapta book for developer |
|
31.05.2012, 12:25 | #4 |
Участник
|
Т.е. выполняется Stmt.executeUpdate(sql)
затем AnyTable.Doinsert(); а потом снова Stmt.executeUpdate(sql) ? |
|
|
|