Ага, а если он имеет слово и селект и апдейт? И ремув до кучи. Запрос вложенный может быть. Вобщем это костыль, рассматривался, не устраивает.
Конечно понимаю что так вам не хочется но все же - если создать массив ключевых слов меняющих метаданных и в каждом отправляемом запросе искать их (а не select)- если их нет - то пропусать если хоть одно нашлось нет.
собственно ваш список таких меняющих метаданные слов:
const QStringList actionList = QStringList()
actionList << "DELETE" << "INSERT" << "UPDATE";
может это и костыль но создание / удаление триггеров в БД это еще больший костыль - т.к. программа должна стремиться не менять метаданные бех надобности. Что например будет если ваша программа сделает setWritingAllowed(false); --- а потом вылетит с ошибкой?
Кстати как там в SQLite нет у триггеров такого понятия как "активность" - тогда уж хоть через него