Использование response-native-sqlite-storage прекращается при попытке открыть транзакцию - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь использовать react-native-sqlite-storage для сохранения данных на устройстве.

Но мне нужно будет использовать много транзакций во время моего кода и когда я пытаюсь вернуть свой экземпляр с помощью SQLite.openConnection и открыть транзакцию, не работает. И если я пытаюсь выполнить SQL из моего db instace, он работает отлично.

db если мой экземпляр пришел от SQLite.openConnection()

// THIS WORKS
db.executeSql(queryCreateTable)
  .catch(erro => console.log(`erro executesql ${erro}`));

db.executeSql('INSERT INTO PEOPLE VALUES ("Mateus Pereira", 20)')
  .catch(erro => console.log(`erro executesql ${erro}`));

db.executeSql('SELECT * FROM PEOPLE').then(([results]) => {
  const { rows } = results;
  console.log(rows);
  for (let i = 0; i < rows.length; i += 1) {
    const row = rows.item(i);
    console.log(`Name: ${row.nome}, Idade: ${row.idade}`);
  }
});

// THIS DOESNT WORK
db.transaction().then((tx) => {
  tx.executeSql(queryCreateTable)
    .catch(erro => console.log(`erro executesql ${erro}`));

  tx.executeSql('INSERT INTO PEOPLE VALUES ("Mateus Pereira", 20)')
    .catch(erro => console.log(`erro executesql ${erro}`));

  tx.executeSql('SELECT * FROM PEOPLE').then(([results]) => {
    const { rows } = results;
    console.log(rows);
    for (let i = 0; i < rows.length; i += 1) {
      const row = rows.item(i);
      console.log(`Name: ${row.nome}, Idade: ${row.idade}`);
    }
  });
}).catch(error => console.log(error));


{
    "db": {
        "openargs": {
            "name": "Test2.db",
            "dblocation": "nosync"
        },
        "dbname": "Test2.db"
    },
    "txlock": true,
    "readOnly": false,
    "executes": []
}

1 Ответ

0 голосов
/ 11 сентября 2018

Вот как использовать транзакцию:

db.transaction(tx => {
  tx.executeSql(`SELECT ...`)
  .then([tx2, results]) => {

  }
  .catch((error) => {
    console.log(error);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...