|
![]() |
#1 |
Участник
|
Цитата:
..Ваш ttsbegin-ttscommit не действует на источник данных формы..
Есть ли у вас пример где эта теория железобетонно подтверждается? У меня есть такой контрпример, что не все так однозначно.. есть два джоба - ttsbegin и ttsabort. есть тестовая форма с таблицей. Ни на таблице ни на форме нет ни одного метода - кода нет вообще. Ну а дальше вы уже догадались.. 1. запускаю форму 2. запускаю джоб ttsbegin 3. в форме заполняю поля записи и закрываю ее. Снова открываю - запись на месте. Закрываю. 4. Запускаю джоб ttsAbort 5. Открываю форму. Записи введенной на шаге 3 больше нет Как это объясняет теория об отдельной жизни форм? Последний раз редактировалось Perc; 03.11.2021 в 06:40. |
|
![]() |
#2 |
Участник
|
Не уверен. Но, вроде бы, в dax4 генерацию новых значений номерных серий делали в отельном соединении. Может, проблема связана с номерными сериями?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#3 |
Участник
|
В чем не уверены? Я свой пример привел.
С вашей стороны есть проверяемый пример подтверждающий обратное? или что имели ввиду Цитата:
Но, вроде бы, в dax4 генерацию новых значений номерных серий делали в отельном соединении. Может, проблема связана с номерными сериями?
|
|
![]() |
#4 |
Участник
|
Я так думаю, что Владимир Максимов не уверен в теории, высказанной Ace of Database об отдельном соединении пр работе датасорса формы.
Я тоже в ней не очень уверен - пока не встречался ни с одним кейсом подтверждения такой теории (ну кроме работы с номерными сериями, но это совсем другой кейс). Вот то что Аксапта при сохранении данных датасорса формы вообще не открывает явную транзакцию в MS SQL еще могу предположить (опять же только предположить) - работает неявная транзакция MS SQL. Понятно, что обязательность поля контролируется не на уровне MS SQL, а движком и сам движок выдает исключение, сам же его и перехватывает. В итоге (если предположение правильное), если мы явно открыли транзакцию, то в результате ошибки будет откат и наших изменений, так как в Аксе исключение выбивает на код с первым уровнем транзакции. А если мы транзакцию не открывали, то где-то внутри Аксы своя же ошибка контроля обязательности заполнения поля перехватилась во внутреннем коде работы с формой. Получается, что в базу не записалось, а вот то что делалось вне движка обработки форм, не откатилось. |
|
Теги |
стек вызовов, транзакции |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|