Добрый день.
Столкнулся с проблемой:
При работе периодически наблюдается ошибка Update Failed. Found 0 Records
но дело не в том, что в этот момент какой-то другой из пользователей поменял текущую запись.
Эта ошибка, возникнув в приложении один раз, продолжает появляться абсолютно во всех UniTable в приложении. Не помогает ни Refresh ни даже переоткрытие UniTable. Ошибка возникает при любой операции изменения данных (вставки, редактировании, удалении)
В UniTable включена опция RefreshBeforeEdit В профайлере я вижу запрос, который формирует Юнидак перед редактированием записи таблицы (лочит запись, согласно опции RefreshBeforeEdit)
Запрос формируется верно, по полям PK таблицы и по условиям этого запроса возвращается одна запись из таблицы (RowsAffected внитри Юнидака должен быть = 1).
Воспроизвести ситуацию на тестовом проекте не удается. Можно смоделировать только ошибку, если в момент редактирования записи первым пользователем, второй её удалит. Первый попытается сохранить и получит ошибку. Но после обновления источника первый пользователь сможет продолжить работу с приложением.
В мануале Юнидака написано, что эту опцию рекомендуется отключать, если на таблице висят триггеры. Триггеры на таблице есть, но операции над сохраняемой записью они не производят. Если бы триггер здесь влиял, ошибка бы проявлялась на конкретной таблице. А так, раз возникнув, она продолжает возникать абсолютно на всех UniTable, пока не перезапустить приложение.
Если отключить опцию StrictUpdate, на что еще это может повлиять, кроме того, как перед выполнением запроса на редактирование записи, Юнидак будет проверять, что редактируется действительно одна текущая запись?
Окружение Delphi 10.1 Berlin, UniDAC 6.4.14
Update Failed. Found 0 Records и Strict Update
Re: Update Failed. Found 0 Records и Strict Update
Мы не можем знать, как поведет себя пользовательский код при отключении опции StrictUpdate, кроме случаев, описанных в документации: https://www.devart.com/unidac/docs/?dev ... update.htm .
Все-таки, постарайтесь составить тестовый пример, т.к. для исследования указанной проблемы нам необходимо ее воспроизвести у себя.
Все-таки, постарайтесь составить тестовый пример, т.к. для исследования указанной проблемы нам необходимо ее воспроизвести у себя.
Re: Update Failed. Found 0 Records и Strict Update
И как работает сейчас?
Re: Update Failed. Found 0 Records и Strict Update
Пожалуйста, опишите более подробно ваш вопрос. Если у вас небольшой тестовый пример, который его демонстрирует, пожалуйста, пришлите его нам.