Ошибка SQLite [код ошибки 1: такой таблицы нет] - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь получить доступ к таблице 'Tasks' с помощью SQLITE-EXPO API

Однако, когда я запускаю запрос 'CREATE TABLE', он просто возвращает сообщение об ошибке:

[INFO]: DATABASE - SUCCESFULLY OPENED
[INFO]: SQL - ERROR DURING TABLE OPENING [Error: Error code 1: no such table: Tasks]

Я запутался, так как этот запрос ПРЕДНАЗНАЧЕН для создания таблицы .. но он продолжает возвращать эту ошибку.

Вот мой код ниже:

// DATABASE STUFF ----------------------------------------
var dbOpen = false;

 // create database instance & open it
const db = SQLite.openDatabase('Tasks-Database.sqlite3', '1.0', 'Tasks-Database', 20000, openCB, errorCB);  

function errorCB(err) {
  console.log("[INFO]: SQL Error: " + err);
};
function successCB(res) {
  console.log("[INFO]: SQL Success: " + res);
};
function openCB() {
  console.log("[INFO]: DATABASE - SUCCESFULLY OPENED");
};

// Table name
  const TABLE = 'Tasks'

  // fetch data from task-database
  useEffect(()=>{

    // // create database if one does not exist yet
     if(dbOpen !== true){
      //var query = 'DROP TABLE IF EXISTS ' + TABLE + ';';
      var query = 'CREATE TABLE IF NOT EXISTS ' + TABLE + ' ("TaskId"   INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TaskName" TEXT NOT NULL, "TaskDate"    BLOB, "TaskDateType" INTEGER NOT NULL DEFAULT 0, "TaskStatus"   INTEGER NOT NULL DEFAULT 0, "TaskPriority" TEXT NOT NULL);';
      var params = [];
      db.transaction((tx) => { 
        tx.executeSql( 
          query,
          params,
          (tx,res) => {console.log('\n[INFO]: SQL - SUCCESFULLY OPENED TABLE\n\n',res)},
          (tx,err) => {console.log('\n[INFO]: SQL - ERROR DURING TABLE OPENING', err)})
      },);
      dbOpen = true; 
      };

     // fetch tasks from database and list them
      if(dbOpen === true){
      var query = 'SELECT * FROM ' + TABLE +';';
      var params = [];
      db.transaction(tx => {
        tx.executeSql(
          query,
          params, 
          (_, { rows: { _array } }) => setItems(_array)
        ); 
      });
     }
    setRefreshing(false)

  },[items]);
...