Как найти причину ошибки «Запись не найдена или изменена другим пользователем» при работе с dbExpress?
Как найти оператор SQL (с фактическими значениями параметров), который не работает?
Как найти причину ошибки «Запись не найдена или изменена другим пользователем» при работе с dbExpress?
Как найти оператор SQL (с фактическими значениями параметров), который не работает?
убедитесь, что компилятор использует Debug DCU.
установить точку останова в первой строке процедуры TSQLResolver.DoExecSQL
в блоке db\Provider
запустить операцию, которая вызывает сообщение об ошибке (например, изменение записи в компоненте, поддерживающем данные)
если отладчик останавливается, сгенерированную команду SQL можно просмотреть
проверьте оператор SQL на наличие условий, которые могут вызвать ошибку
На этом этапе могут быть проверены только константные выражения в операторе типа ... 'где Поле1 равно нулю, а Поле2 = 0'. в DoExecSQL оператор SQL использует заполнители (?) для значений параметров, поэтому, если условия константного выражения не показали ничего полезного, продолжайте отладку: