Цитата:
Сообщение от
Lucky13
Это понятно. Проблему это решит, но не поможет понять почему update_recordset работает не так, как обычный update.
Я имею в виду если поле было равно true и update хочет сделать true. Следовательно ничего не изменилось и modifieddate/time меняться не должны по идее, а они меняются.
По-моему причины данного поведения достаточно очевидны.
Если делается обычный
update() то Акса проверяет, что хоть какое-то поле поменялось и если нет, то реального Апдэйта в БД не уходит.
В случае же
update_recordset если выполняются все необходимые условия
(типа отсутствия перекрытого метода update(), отсутствия Лога БД или же если есть соответсвующие skipXXX()... это я думаю понятно....) на сервер БД сразу отправляется update вида:
X++:
UPDATE ...
SET FIELD=:in1,MODIFIEDDATE=:in2,MODIFIEDTIME=:in3
WHERE ...
Соответсвенно и поля меняются всегда для попадающих под запрос строк.
Всё логично... С точки зрения БД - это номальное как раз поведение, т.к. обновление реальное было.
Перекройте метод Update() на таблице и получится первый вариант поведения (Аксаптовский)...

Со всеми вытекающими по скорости.