我正在编写一个带有 GUI 前端 (GTK) 和 SQLite 后端的应用程序。当通过 GUI 更改某些内容时,当且仅当它在数据库中成功完成时,我希望更改显示在 GUI 中。
是否
sqlite3_step
足以SQLITE_ERROR
确保我不会向用户提供错误反馈?如果没有,是否有其他步骤(例如回调或触发器)可以提供额外的可靠性?
有什么方法可以检测到对数据库的所有更改,而不仅仅是来自程序自身连接的更改,以便我可以动态地在 GUI 中反映对其内容的更改?
我正在编写一个带有 GUI 前端 (GTK) 和 SQLite 后端的应用程序。当通过 GUI 更改某些内容时,当且仅当它在数据库中成功完成时,我希望更改显示在 GUI 中。
是否sqlite3_step
足以SQLITE_ERROR
确保我不会向用户提供错误反馈?
如果没有,是否有其他步骤(例如回调或触发器)可以提供额外的可靠性?
有什么方法可以检测到对数据库的所有更改,而不仅仅是来自程序自身连接的更改,以便我可以动态地在 GUI 中反映对其内容的更改?
如果我理解正确,您正在做一个 GUI 应用程序来修改 SQLite 数据库中的信息。
SQLITE_BUSY
如果你有线程,你可能会得到;SQLITE_INTERNAL
; 等检查SQLite 文档。而不是要求SQLITE_ERROR
你可以做类似的事情:SQLITE_OK
或者SQLITE_DONE
取决于你在做什么。
if (ret != SQLITE_OK || ret != SQLITE_DONE)
//then this is an error.
不知道你用什么语言编码,但我在这里用 C 语言做了一个 SQLite 的抽象。你可能会觉得很有趣。
除了异常处理...您应该通过单击保存按钮从用户提交的数据库中重新选择数据。这样您就可以确定用户看到了正确的数据。