Я использую Delphi 5 с SQL Server 2000 здесь.
Я создал ADOQuery поверх обновляемого представления с триггером INSTEAD OF DELETE.
Обновляемый вид в основном используется для управления программным удалением. Он отфильтровывает записи, помеченные как удаленные, а также скрывает управляющий столбец.
Все работает нормально, когда я посылаю прямые команды DELETE в базу данных. Я удаляю запись в представлении, и базовая таблица обновляется, выполняя мягкое удаление, как и ожидалось.
Когда я пытаюсь использовать ADOQuery для удаления записи, он обходит представление и удаляет запись непосредственно в базовой таблице, поэтому триггер вместо удаления в представлении никогда не срабатывает.
Я также использую ссылочные ограничения, и из-за них происходит удаление из-за них, но я не знаю, имеет ли это значение. Этого не происходит при выдаче команд удаления в представление.
Кто-нибудь из вас знает, как обойти это раздражающее поведение?