Uncaught Error: No such table - Database

You must Login before you can answer or comment on any questions.

Trying to insert information to a database however I get the following error message.

Location:
Ui/mydb.js
Message:
Uncaught Error: no such table: itemFieldTable(code 1):, while compiling:
INSERT INTO itemFieldTable (itemField )VALUES(?)
Source:
db.execute('INSERT INTO itemFieldTable (itemField) VALUES(?)',itemField.value);
My code:
function checkforDB(){
var db = Ti.Database.open('mydb');
 
db.execute('CREATE TABLE IF NOT EXISTS itemFieldTable (itemField TEXT)');
db.close(); 
}
 
 
 
 
function insertItem(itemField){
    db = Ti.Database.open('mydb');
    db.execute('INSERT INTO itemFieldTable (itemField) VALUES (?)',itemField.value);
    var insertid = db.lastInsertRowId;
    db.close();
    list.fireEvent('dbupdate');
    return insertid;
 
}
This is for Android using latest version of Titanium.

— asked 8 months ago by Steven Clarke
1 Comment
  • In checkforDb you are creating db and itemFieldTable and also closing database . then how could you access table while inserting data ???

    you shoud create database and table without using function and close after doing all queries with database

    — commented 8 months ago by Muhammad Adnan

1 Answer

database handling Example ,It will help you

//create the database object

var db = Titanium.Database.open('mydb');

//execute the table create script

db.execute('CREATE TABLE IF NOT EXISTS itemFieldTable (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT)');

function insertUser(name) {

var sql = "INSERT INTO itemFieldTable (name) VALUES (";
sql = sql + "'" + name + "')";

db.execute(sql);
Ti.API.info('Query : ' + sql + ' executed successfully with rowId : ' + db.lastInsertRowId );
return db.lastInsertRowId;

}

function deleteUser(id) { var sql = "DELETE FROM itemFieldTable WHERE id = " + id; db.execute(sql); }

function getUsers() {

var sql = "SELECT * FROM itemFieldTable";
var results = [];
var resultSet = db.execute(sql);
while (resultSet.isValidRow()) {
        results.push({
          id: resultSet.fieldByName('id'),
          name: resultSet.fieldByName('name')
          });
resultSet.next();
}
resultSet.close();      

return results;

}

Your Answer

Think you can help? Login to answer this question!