Я пишу приложение с интерфейсом GUI (GTK) и SQLite. Когда что-то изменяется через графический интерфейс, я хочу, чтобы изменение отображалось в графическом интерфейсе, если и только если оно успешно выполнено в БД.
Достаточно ли просмотра кода возврата от sqlite3_step для SQLITE_ERROR, чтобы я не дал ложную обратную связь пользователю?
sqlite3_step
SQLITE_ERROR
Если нет, есть ли другие шаги, такие как обратные вызовы или триггеры, которые обеспечили бы дополнительную надежность?
Есть ли способ обнаружить ВСЕ изменения в базе данных, а не только изменения из собственного соединения программы, чтобы я мог динамически отражать изменения ее содержимого в графическом интерфейсе?
Если я правильно понимаю, вы делаете приложение с графическим интерфейсом, которое изменяет информацию в базе данных SQLite.
SQLITE_BUSY
SQLITE_INTERNAL
SQLITE_OK или SQLITE_DONE в зависимости от того, что вы делаете.
SQLITE_OK
SQLITE_DONE
if (ret != SQLITE_OK || ret != SQLITE_DONE) //then this is an error.
Не знаю, на каком языке вы кодируете, но я сделал абстракцию SQLite в C здесь . Вы можете найти это интересным.
Использование sqlite3_trace ()
Помимо обработки исключений ... Вы должны повторно выбрать данные из БД, которые пользователь зафиксировал, нажав кнопку Сохранить. Таким образом, вы точно знаете, что пользователь видит правильные данные.