sqlite3 没有第二次打开预填充的数据库
Posted
技术标签:
【中文标题】sqlite3 没有第二次打开预填充的数据库【英文标题】:sqlite3 is not opening pre-populated database second time 【发布时间】:2020-12-08 07:41:30 【问题描述】:我正在探索 sqlite 3 插件,我发现了一个我在网上没有发现的奇怪问题。
我正在研究 android 。所以,在资产文件夹中,我有一个包含一些数据的数据库。数据库名称为sqliteexample.db
。
然后我使用下面的代码打开数据库。而且很成功。
var SQLite = require('react-native-sqlite-storage');
var db = SQLite.openDatabase(
name: 'sqliteexample',
createFromLocation: '1'
,
() =>
console.log('db connection success');
,
(error) =>
console.log('db connection error');
console.log(error)
,
);
现在,为了检查不同的场景,我将数据库文件名重命名为sqliteexample1.db
。然后我将其更改为如下代码
name: 'sqliteexample1',
createFromLocation: '1'
,
就是这样,我开始收到错误cannot open database
。
它是如何在内部访问它的?
如果我跳过createFromLocation: '1'
,它会创建一个新数据库吗?
请任何人帮助我。
【问题讨论】:
【参考方案1】:很简单,
如果数据文件的名称与 dbName 相同
SQLite.openDatabase(name : "sqliteexample", createFromLocation : 1, okCallback,errorCallback);
如果数据文件的名称不同于 dbName
SQLite.openDatabase(name : "sqliteexample", createFromLocation : "~sqliteexample1.db", okCallback,errorCallback);
如果您的文件夹不在应用程序包中而是在应用程序沙箱中
SQLite.openDatabase(name : "sqliteexample", createFromLocation : "pathroot/data/mydbfile.sqlite", okCallback,errorCallback);
问题是文件名和数据库名不必总是相同。
【讨论】:
以上是关于sqlite3 没有第二次打开预填充的数据库的主要内容,如果未能解决你的问题,请参考以下文章
发布后,每个页面第一次打开都很卡,50秒或更长,第二次打开就很快了
SQLite第七课 sqlite3_bind_int应用注意
如何在我的项目中创建第二个目标来为 iOS 创建一个预填充的数据库
在 react-native 中打开预填充的 SQLite 数据库,将数据库放在哪里?