c++ - SQLite sqlite3pp C++ api:如何将可以在数据库中找到的所有 sqlite3pp::transactions 加载到某个 vector 或集合中?

标签 c++ sqlite transactions

所以我发现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/

相关文章:

c++ - c++ 局部类中的静态成员变量?

c++ - vector 删除多个区域,2次删除与单次分配?

c++ - C++中的静态常量 double

python - django自动创建的sqlite数据库在哪里?

javascript - 手机间隙 : insert query sqlite when login success

java - 从Service中的数据库获取数据

c# - 是否可以将事务范围与在存储过程中提交事务结合起来?

c# - 读取时的 NHibernate 事务

c++ - 何时以及如何允许转换为 char 指针?

java - 在哪里放置@Transactional?在接口(interface)规范或实现中?