Frage

So I am developing this add-on using the MDN's Add-on Builder and need to connect with the SQLite Database. The connection gets created fine and insertion is fine as long as I am inserting values without binding parameters(that is, through executeSimpleSQL()). As soon as I use the createStatement() method to INSERT values, it does not work. Here's what I have done so far.

let file = FileUtils.getFile("Desk", ["my_db_file_name.sqlite"]);
let mDBConn = Services.storage.openDatabase(file); 
mDBConn.executeSimpleSQL("CREATE TEMP TABLE IF NOT EXISTS element (rating VARCHAR(50))");

let stmt = mDBConn.createStatement("INSERT INTO element (rating) VALUES(:value)");
stmt.params.value = 13;

//mDBConn.executeSimpleSQL("INSERT INTO element (rating) VALUES(13)");

var statement = mDBConn.createStatement("SELECT * FROM element WHERE rating = :rat");
statement.params.rat = 13;
try {
  while (statement.step()) {
    let value = statement.row.rating;
    console.log(value);
  }
}
finally {
  statement.reset();
}

Note that the SELECT statement with the bound parameters works fine, it's just the INSERT statement that's problematic.

Any ideas?

War es hilfreich?

Lösung

You forgot to call execute().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top