【问题标题】:sqlite3 is not opening pre-populated database second timesqlite3 没有第二次打开预填充的数据库
【发布时间】: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',它会创建一个新数据库吗?

请任何人帮助我。

【问题讨论】:

    标签: react-native react-native-android react-native-ios cordova-sqlite-storage


    【解决方案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);
    
    

    问题是文件名和数据库名不必总是相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      相关资源
      最近更新 更多