【发布时间】:2011-02-10 17:28:58
【问题描述】:
我进行了一些搜索并阅读了 SQLite 网站上的常见问题解答,但没有找到我问题的答案。
很可能是我的数据库方法存在缺陷,但目前,我想将我的数据存储在多个 SQLite3 数据库中,这意味着单独的文件。我非常担心由于我的应用程序可能崩溃或在更改表中的数据过程中断电导致数据损坏。
为了保证数据的完整性,我基本上需要这样做:
begin transaction
modify table(s) in database #1
modify table(s) in database #2
commit, or rollback if error
SQLite 支持吗?另外,我正在使用 sqlite.net,特别是基于 SQLite 3.6.23.1 的最新版本。
更新
还有一个问题——人们通常会添加到他们的单元测试中吗?我总是对数据库进行单元测试,但从未遇到过这样的案例。如果是这样,你会怎么做?这几乎就像您必须将另一个参数传递给 bool test_transaction 之类的方法,如果为真,则在数据库访问之间抛出异常。然后在调用后进行测试以确保第一组数据没有进入另一个数据库。但也许这是 SQLite 测试所涵盖的内容,并且应该不出现在我的测试用例中。
【问题讨论】:
-
我认为您不想将其添加到单元测试中。就像事务运行良好一样,一次又一次地测试它们是没有意义的。只需进行一些初步测试,以确保插入、更新、回滚等正确无误并且一切顺利。
-
好的,我觉得这样最好。完美!
标签: database transactions sqlite system.data.sqlite