sqlite3 没有第二次打开预填充的数据库
sqlite3 is not opening pre-populated database second time
我正在探索 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'
,它会创建一个新数据库吗?
请任何人帮助我。
很简单,
如果数据文件与 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);
问题是文件名和数据库名不必总是相同。
我正在探索 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'
,它会创建一个新数据库吗?
请任何人帮助我。
很简单,
如果数据文件与 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);
问题是文件名和数据库名不必总是相同。