Я хотел бы открыть существующий файл базы данных SQLite внутри Expo-SQLite. Файл находится, скажем, где-то на устройстве (например, в папке «Документы»), чтобы пользователь мог открыть его с помощью DocumentPicker. У меня проблемы с получением файла, выбранного из DocumentPicker, в SQLite:
import * as DocumentPicker from 'expo-document-picker'
import * as SQLite from 'expo-sqlite'
openFile = () => {
const res = DocumentPicker.getDocumentAsync().then(result => {
let db = SQLite.openDatabase(result.uri)
console.log(db) //logs null
})
}
Я могу заверить, что SQLite работает во время работы внутри, поскольку
let db = SQLite.openDatabase('test.db')
, давайте мне запросить SQLзапросы на db
.
РЕДАКТИРОВАТЬ:
import * as FileSystem from 'expo-file-system';
openFile = async() => {
const localdb = `${FileSystem.documentDirectory}$mylocal.db`;
const result = await DocumentPicker.getDocumentAsync();
const copyResult = await FileSystem.copyAsync({from: result.uri,
to: localdb
});
let db = SQLite.openDatabase(localdb);
console.log(db);
}
, казалось, чтобы открыть файл базы данных. Однако
await db.transaction((txn) => {
txn.executeSql('SELECT * FROM Record', [],
(txn, rs) => console.log(rs.rows),
(error) => console.log(error)) })
ничего не выводит .. Я проверил файл базы данных в браузере БД на наличие SQLite, и все выглядит нормально с самим файлом ..