0

第一次使用 react-native-sqlite-storage,我能够在 Android 模拟器中创建一个 sqlite db 文件,在其中创建一个表并成功插入一行。之后单击按钮,我还通过选择验证了该行已插入。

然后我使用 Android Studio 的“设备文件资源管理器”在 data\data<apppkg>\databases 文件夹中找到 test.db 文件,并使用“另存为”将其复制到 PC 的文件夹中。现在,当我在浏览器实用程序中打开 test.db 文件时,它是空的!里面没有桌子。

怀疑是“刷新”问题,我还在应用程序中尝试了 db.close() 。但我仍然无法从 Android 模拟器获取填充的数据库副本。我究竟做错了什么?

更新:我注意到在 android 模拟器上,还有 2 个带有数据库文件的文件——一个 shm 和一个 wal 文件。阅读其他一些线程,似乎他们正在保留日志,因此数据似乎尚未提交。那些线程提到关闭光标。但是存储库文档中没有这样的提及。除了调用不会真正关闭它并提交数据的 close() 之外,我如何确保从应用程序关闭游标。

4

1 回答 1

0

最后,对于我简单的单表需求,我最终在 db 对象上调用了 executeSql,而不是通过事务来执行它。这解决了问题,并且关闭时,它始终是一个文件。不知何故,当您使用事务时,即使您关闭数据库,其他文件也会徘徊。

于 2020-11-08T15:05:23.567 回答