Если вы используете PB11.5 и используете пользовательский объект транзакции, довольно легко сделать что-то, что не зависит от СУБД. В событии SQLPreview объекта транзакции просто включите логическое значение, когда проходит INSERT, UPDATE или DELETE, а затем отключите его, когда пройдут COMMIT или ROLLBACK.
На самом деле, не так уж и сложно поменять пользовательский объект транзакции, если вы используете SQLCA: приложение, свойства, дополнительные свойства, типы переменных, SQLCA. Если вы используете много отдельных соединений с базой данных с большим количеством операторов «CREATE транзакция» (стандартный поиск PB может найти это, или PBL Peeper может помочь вам найти это с переменным количеством пробелов между словами ), тогда реализовать это будет сложнее, но не невозможно.
И, ради полноты, для создания пользовательского объекта транзакции: Файл / Новый / Объект PB / Стандартный класс / Транзакция. У вас есть обычный пользовательский объект, в котором вы можете определить переменные экземпляра (например, булево значение, которое я предложил), события сценария (например, предложенное мной событие SQLPreview) и функции (вы можете создать интерфейс для этой функции, чтобы скрыть детали на случай, если вы захотите расширить их в будущем). Обратите внимание, что SQLPreview недоступен для объекта Transaction до 11.5. (Для тех, кто считает это знакомым до 11.5, DataWindow реализует SQLPreview.)
Удачи,
Терри.