queria saber si me pueden ayudar con el siguiente error:
Estoy tratando de eliminar la base EXPO SQLite en React-Native y luego importar otra base que tengo en mi carpeta.
Cuando lo hago me arroja el siguiente error:
Error: no existe tal tabla: usuarios (código 1 SQLITE_ERROR): , al compilar:
este es mi código:
import React, { useState, useEffect } from 'react'; const SQLite = require('expo-sqlite') import * as FileSystem from 'expo-file-system'; import { Asset } from "expo-asset"; var db = null; export default class SQLiteScreen extends React.Component { constructor() { super(); } /*async openDatabase() { if (!(await FileSystem.getInfoAsync(FileSystem.documentDirectory + 'SQLite')).exists) { await FileSystem.makeDirectoryAsync(FileSystem.documentDirectory + 'SQLite'); } await FileSystem.downloadAsync( Asset.fromModule(require('./MainDB.db')).uri, FileSystem.documentDirectory + 'SQLite/MainDB.db' ); db = await SQLite.openDatabase(`MainDB.db`); } */ async openDatabaseIShipWithApp() { if (!(await FileSystem.getInfoAsync(`${FileSystem.documentDirectory}SQLite/MainDB.sqlite`)).exists) { await FileSystem.makeDirectoryAsync(`${FileSystem.documentDirectory}SQLite/`, { intermediates: true }); const asset = await Asset.fromModule(require("./MainDB.db")); await FileSystem.downloadAsync(asset.uri, `${FileSystem.documentDirectory}SQLite/MainDB.sqlite`); } db = await SQLite.openDatabase(`MainDB.sqlite`); } async deleteDatabaseWithApp(){ const internalDbName = "MainDB.sqlite"; // Call whatever you want const sqlDir = FileSystem.documentDirectory + "SQLite/"; if ((await FileSystem.getInfoAsync(sqlDir + internalDbName)).exists){ await FileSystem.deleteAsync(sqlDir+internalDbName, {idempotent:true}) } } ExecuteQuery = (sql, params = []) => new Promise(async (resolve, reject) => { await this.openDatabaseIShipWithApp(); db.exec([{ sql: 'PRAGMA foreign_keys = ON ; ', args: [] }], false, () => { }); db.transaction((trans) => { trans.executeSql(sql, params, (trans, results) => { resolve(results); }, (_, error) => { reject(error); }); }); }); }Llamo a la función de la siguiente manera:
let query = `SELECT * FROM personal`; await new SQLiteScreen().deleteDatabaseWithApp(); let selectQuery = await new SQLiteScreen().ExecuteQuery(query);