Почему в моем файле базы данных SQLite нет данных? - PullRequest
0 голосов
/ 31 мая 2019

Цель -

Я пытаюсь сохранить данные о долготе и широте из API геолокации с использованием React native. Я создал файл .db и поместил его в папку /assets/ в Android. Во-первых, вместо данных о местоположении я пытаюсь вставить или получить любые данные. ОШИБКА -

Это показывает, что нет таблицы с именем Test, когда я пытаюсь console.log() это.

Проблема -

Всякий раз, когда я пытаюсь вставить данные в базу данных, я не вижу добавленных новых данных, а также, когда я пытаюсь прочитать уже заполненную базу данных, я ничего не вижу. Где я не прав? Я довольно новичок в этом.

  1. Каков ответ, возвращаемый SQL transaction. Я console.log это, но не мог понять.

  2. Где должен быть transaction function be located?

Я использую DBbrowser для SQLite ОС - MacOS

КОД -

I am using this function to send or receive data.

sendData = () => {
        // var SQLite = require('react-native-sqlite-storage')
        var db = SQLite.openDatabase({name: 'a', createFromLocation : "~test.sqlite"}, this.openCB, this.errorCB); 
        db.transaction(txn => {
        txn.executeSql(
        //   "INSERT INTO Test (latitude,longitude) VALUES(?,?)",
        'SELECT * FROM Test',
          [],      //Argument to pass for the prepared statement
          (res) => {
            // let row = res.rows.(1);
            console.log(res);
          }   //Callback function to handle the result response
        );
      }); 
    };

// I mapped this button to send data.

<TouchableOpacity onPress={this.sendData} style={styles.button}>
<Text> SEND DATA</Text
</TouchableOpacity>

1 Ответ

0 голосов
/ 01 июня 2019

Вы не сможете изменить базу данных, хранящуюся в папке ресурсов. Типичный метод - прежде чем пытаться открыть базу данных для вставки записей, вы сначала проверяете, существует ли база данных в папке данных ваших приложений (не уверен, имеет ли React ту же структуру папок или нет). Если база данных не существует в папке данных, вы копируете чистую базу данных из ресурсов в папку данных, а затем открываете базу данных из папки данных. Пока приложение не удаляется с устройства, база данных в папке данных будет сохраняться вместе со всеми данными, которые вы в нее вставили. Как только приложение будет удалено и переустановлено, базу данных придется скопировать из ресурсов еще раз, и она будет чистой, без новых данных.

Я не знаю, применяется ли такая же структура папок данных к React, но в нативном Android я использую:

 "/data/data/com.mycompany.myapp/databases/"

OR

DB_PATH = myContext.getFilesDir().getParentFile().getPath() + "/databases/";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...