28.04.2006, 17:29 | #1 |
Участник
|
Всем привет.
Наткнулись на очень интересную ситуацию - попахивает ошибкой ядра при реализации механизма оптимистической конкуренции - не полностью откатывается транзакция. Сразу объясню, как ее смоделировать. В прилагаемом фобе - 2 таблицы. В таблице Test Validate нужно создать 2 записи, заполнив Entry No., Code1 и Decimal1. После этого, в любой записи изменить поле Code1 и, никуда из него не переходя, открыть второго клиента Навижн. В этом клиенте нужно открыть эту же таблицу, встать на эту же запись и изменить поле Decimal1. Перейти на другую запись для ее сохранения и вернуться в первого клиента. В нем попробовать выйти из поля Code1. При этом появится сообщение об ошибке - другой пользователь изменил запись. А теперь самое интересное. Если открыть таблицу Test Commit, то в ней появилась запись, которая формируется на триггере OnValidate поля Code1 !!!! То есть оптимистическая конкуренция откатила транзакцию не польностью !!!! Кто-нибудь встречался с этим ранее??? P.S. Ошибка появилась изначально на реальном проекте. Возникает на клиентах 3.70B и 4.0 SP1. БД - SQL. |
|