javascriptreact-nativesqlitereact-native-sqlite-storage

Sqlite executeSql is not returning ResultSet


I am attempting to perform a simple query with Sqlite in React-Native using the react-native-sqlite-storage plugin. Based on the documentation I should get two paramters into the success callback 1) the SQLite.Transaction and 2) SQLlite.ResultSet but I am only getting the SQLite.Transaction in my example.

let sql = "SELECT * FROM table_a;"
let params = [];

db.executeSql(sql, params,
  (trans, results) => {
    console.log("execute success results: " + JSON.stringify(results))
    console.log("execute success transaction: " + JSON.stringify(trans))
    //resolve(results);
    resolve(trans);
  },
  (error) => {
    console.log("execute error: " + error);
    reject(error);
});  

Console output

execute success results: undefined
execute success transaction: {"rows":{"length":1},"rowsAffected":0}  

Solution

  • I forgot to wrap my executeSql in a transaction. This works as expected:

    db.transaction((txn) => {
        txn.executeSql(sql, params, (trans, results) => {
            console.log("execute success results: " + JSON.stringify(results))
            console.log("execute success transaction: " + JSON.stringify(trans))
            //resolve(results);
            resolve(trans);
        },
            (error) => {
            console.log("execute error: " + JSON.stringify(error))
            reject(error);
        });
    });