Страница 1 из 1

Update Failed. Found 0 Records и Strict Update

Добавлено: Ср 05 апр 2017 11:03
denzay.dp
Добрый день.

Столкнулся с проблемой:
При работе периодически наблюдается ошибка Update Failed. Found 0 Records
но дело не в том, что в этот момент какой-то другой из пользователей поменял текущую запись.
Эта ошибка, возникнув в приложении один раз, продолжает появляться абсолютно во всех UniTable в приложении. Не помогает ни Refresh ни даже переоткрытие UniTable. Ошибка возникает при любой операции изменения данных (вставки, редактировании, удалении)
В UniTable включена опция RefreshBeforeEdit В профайлере я вижу запрос, который формирует Юнидак перед редактированием записи таблицы (лочит запись, согласно опции RefreshBeforeEdit)
Запрос формируется верно, по полям PK таблицы и по условиям этого запроса возвращается одна запись из таблицы (RowsAffected внитри Юнидака должен быть = 1).

Воспроизвести ситуацию на тестовом проекте не удается. Можно смоделировать только ошибку, если в момент редактирования записи первым пользователем, второй её удалит. Первый попытается сохранить и получит ошибку. Но после обновления источника первый пользователь сможет продолжить работу с приложением.

В мануале Юнидака написано, что эту опцию рекомендуется отключать, если на таблице висят триггеры. Триггеры на таблице есть, но операции над сохраняемой записью они не производят. Если бы триггер здесь влиял, ошибка бы проявлялась на конкретной таблице. А так, раз возникнув, она продолжает возникать абсолютно на всех UniTable, пока не перезапустить приложение.

Если отключить опцию StrictUpdate, на что еще это может повлиять, кроме того, как перед выполнением запроса на редактирование записи, Юнидак будет проверять, что редактируется действительно одна текущая запись?
Окружение Delphi 10.1 Berlin, UniDAC 6.4.14

Re: Update Failed. Found 0 Records и Strict Update

Добавлено: Вт 18 июл 2017 14:18
AndreyZ
Мы не можем знать, как поведет себя пользовательский код при отключении опции StrictUpdate, кроме случаев, описанных в документации: https://www.devart.com/unidac/docs/?dev ... update.htm .

Все-таки, постарайтесь составить тестовый пример, т.к. для исследования указанной проблемы нам необходимо ее воспроизвести у себя.

Re: Update Failed. Found 0 Records и Strict Update

Добавлено: Ср 02 авг 2017 12:43
skameykin
И как работает сейчас?

Re: Update Failed. Found 0 Records и Strict Update

Добавлено: Пн 23 окт 2017 08:28
AndreyZ
Пожалуйста, опишите более подробно ваш вопрос. Если у вас небольшой тестовый пример, который его демонстрирует, пожалуйста, пришлите его нам.