react-native-sqlite-storage 如何打开指定目录文件?
react-native-sqlite-storage How to open the specified directory file?
我的数据库在:android\app\src\main\assets\app.db
我尝试的方式:
open() {
SQLiteStorage.DEBUG(true);
SQLiteStorage.openDatabase({
name: 'file:///android_asset/app.db',
})
.then(() => {
console.info('');
})
.catch(err => {
console.warn(err);
});
}
但是错误:
我该怎么做?
运行 好的!
open() {
SQLiteStorage.DEBUG(true);
SQLiteStorage.openDatabase({
name: 'app.db', // android/app/src/main/assets/app.db
})
.then(() => {
console.info('');
})
.catch(err => {
console.warn(err);
});
}
在 react-native-cli 中:
1- 首先 确保数据库存在 在文件目录中很方便,使用 rn-fetch-blob 你可以列出一个文件中的文件像这样的目录:
import RNFetchBlob from 'rn-fetch-blob';
let dirs = RNFetchBlob.fs.dirs;
const documentPath = dirs.DocumentDir;
const externalZipPath = dirs.DCIMDir;
RNFetchBlob.fs.ls (documentPath) .then ((files) => {
console.log (files)
})
如果不执行此步骤,您可以设置正在创建和打开一个基本数据库,因为它没有找到任何具有该名称的。
您可以也可以从 android 工作室打开 数据库:
启动成功时:
在设备文件资源管理器 > 数据 > 数据 > com.nameofyourapp> 数据库中
您也可以点击android studio 'Database inspector'底部的tab,实时查看数据库变化。
2- 一旦确定该目录中已存在数据库:
要在单元格 phone 内但项目外的目录中打开数据库:
“如果您的文件夹不在应用程序包中,而是在应用程序沙箱中,即从某个远程位置下载”
let openDbExample = () => {
let errorCB = (err) => {
console.log ("SQL Error:" + err);
}
let successCB = () => {
db.transaction ((tx) => {
tx.executeSql (
`SELECT * FROM name_column_table LIMIT 10`, [], (tx, results) => {
var len = results.rows.length;
for (let i = 0; i <len; i ++) {
let row = results.rows.item (i);
console.log (row);
}
})
})
}
if (Platform.OS === 'ios') {
db = SQLite.openDatabase ({name: "example_data_base.db", location:
'Documents'}, successCB, errorCB);
}
else {
db = SQLite.openDatabase ({name: "example_data_base.db", readOnly: true,
location: "default", createFromLocation: 2}, successCB, errorCB)
}
}
我的数据库在:android\app\src\main\assets\app.db
我尝试的方式:
open() {
SQLiteStorage.DEBUG(true);
SQLiteStorage.openDatabase({
name: 'file:///android_asset/app.db',
})
.then(() => {
console.info('');
})
.catch(err => {
console.warn(err);
});
}
但是错误:
我该怎么做?
运行 好的!
open() {
SQLiteStorage.DEBUG(true);
SQLiteStorage.openDatabase({
name: 'app.db', // android/app/src/main/assets/app.db
})
.then(() => {
console.info('');
})
.catch(err => {
console.warn(err);
});
}
在 react-native-cli 中:
1- 首先 确保数据库存在 在文件目录中很方便,使用 rn-fetch-blob 你可以列出一个文件中的文件像这样的目录:
import RNFetchBlob from 'rn-fetch-blob';
let dirs = RNFetchBlob.fs.dirs;
const documentPath = dirs.DocumentDir;
const externalZipPath = dirs.DCIMDir;
RNFetchBlob.fs.ls (documentPath) .then ((files) => {
console.log (files)
})
如果不执行此步骤,您可以设置正在创建和打开一个基本数据库,因为它没有找到任何具有该名称的。
您可以也可以从 android 工作室打开 数据库: 启动成功时: 在设备文件资源管理器 > 数据 > 数据 > com.nameofyourapp> 数据库中 您也可以点击android studio 'Database inspector'底部的tab,实时查看数据库变化。
2- 一旦确定该目录中已存在数据库: 要在单元格 phone 内但项目外的目录中打开数据库: “如果您的文件夹不在应用程序包中,而是在应用程序沙箱中,即从某个远程位置下载”
let openDbExample = () => {
let errorCB = (err) => {
console.log ("SQL Error:" + err);
}
let successCB = () => {
db.transaction ((tx) => {
tx.executeSql (
`SELECT * FROM name_column_table LIMIT 10`, [], (tx, results) => {
var len = results.rows.length;
for (let i = 0; i <len; i ++) {
let row = results.rows.item (i);
console.log (row);
}
})
})
}
if (Platform.OS === 'ios') {
db = SQLite.openDatabase ({name: "example_data_base.db", location:
'Documents'}, successCB, errorCB);
}
else {
db = SQLite.openDatabase ({name: "example_data_base.db", readOnly: true,
location: "default", createFromLocation: 2}, successCB, errorCB)
}
}