所以我发现sqlite3pp C++ SQLite 数据库引擎 API 有一些可回滚事务的概念。我想知道是否可以在应用程序重启后从 db 文件中提取事务?如果是这样,如何加载所有这些以便它们发生在某个 vector 中? (这将使创建数据库项目版本和修订控制变得容易)
最佳答案
根据 SQLite 3 文档:
If sqlite3_close() is invoked while a transaction is open, the transaction is automatically rolled back.
无论您是直接使用 API 还是间接使用 sqlite3pp,都是如此。因此,您无法在应用程序重新启动时保留数据库事务(因为数据库连接是特定于应用程序的)。
我不知道如果您只是退出应用程序而不关闭数据库会发生什么,但我很确定交易会丢失。
关于c++ - SQLite sqlite3pp C++ api:如何将可以在数据库中找到的所有 sqlite3pp::transactions 加载到某个 vector 或集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810861/