Android SQLite: Can't access column on existing table

melodikopunk

New Member
I can't seem to access an SQLite database table. When trying to do it, it says table does not exist. I've searched for people with same problems, double checked my code but I can't find the problem.Some definitions:\[code\]private static final String TABLE_PRODUTOS = "produtos";private static final String TABLE_CONCORRENTES = "concorrentes";private static final String TABLE_VENDE = "vende";private static final String KEY_ID_PROD = "_id";private static final String KEY_NOME_PROD = "nome_prod";private static final String KEY_CODBAR_PROD = "codbar_prod";private static final String KEY_ID_CONC = "_id";private static final String KEY_NOME_CONC = "nome_conc";private static final String KEY_VENDE_PROD_ID = "prod_id";private static final String KEY_VENDE_CONC_ID = "conc_id";private static final String KEY_VENDE_PRECO = "preco";private static final String KEY_VENDE_OFERTA = "oferta";\[/code\]Here's the code for creating DB:\[code\]public void onCreate(SQLiteDatabase db) { Log.i("DB","CREATING_DB"); String CREATE_TABLE_PRODUTOS = "CREATE TABLE " + TABLE_PRODUTOS + "(" + KEY_ID_PROD + " INTEGER PRIMARY KEY," + KEY_NOME_PROD + " TEXT," + KEY_CODBAR_PROD + " INTEGER" + ")"; String CREATE_TABLE_CONCORRENTES = "CREATE TABLE " + TABLE_CONCORRENTES + "(" + KEY_ID_CONC + " INTEGER PRIMARY KEY," + KEY_NOME_CONC + " TEXT" + ")"; String CREATE_TABLE_VENDE = "CREATE TABLE " + TABLE_VENDE + "(" + KEY_VENDE_PROD_ID + " INTEGER," + KEY_VENDE_CONC_ID + " INTEGER," + KEY_VENDE_PRECO + " REAL," + KEY_VENDE_OFERTA + "INTEGER" + ")"; db.execSQL(CREATE_TABLE_PRODUTOS); db.execSQL(CREATE_TABLE_CONCORRENTES); db.execSQL(CREATE_TABLE_VENDE);}\[/code\]Here's the code for inserting/updating:\[code\]public void addVenda_(Venda p_) { //bd is my SQLiteDatabase if (bd != null && bd.isOpen()) { //Log.i("CLOSING_DB", "addVenda"); bd.close(); } bd = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_VENDE_PRECO, p_.preco); // Contact Name values.put(KEY_VENDE_OFERTA, p_.oferta); // Contact Name if(getVenda_(p_)){ //getVenda() returns true if row with KEY_VENDE_PROD_ID and KEY_VENDE_CONC_ID already exist //Log.i("UPDATE","conc: "+p_.id_conc+" prod: "+p_.id_prod+" pre?o: "+p_.preco+" oferta: "+p_.oferta); bd.update(TABLE_VENDE, values, KEY_VENDE_PROD_ID + " = ? AND "+KEY_VENDE_CONC_ID + " = ?", new String[]{ "" + p_.id_prod, "" + p_.id_conc }); //bd.rawQuery("update "+TABLE_VENDE+" SET "+KEY_VENDE_PRECO+"="+p_.preco+", "+KEY_VENDE_OFERTA+"="+p_.oferta+" WHERE "+KEY_VENDE_PROD_ID+"="+p_.id_prod+" AND "+KEY_VENDE_CONC_ID+"="+p_.id_conc, null); } else{ //Log.i("INSERT","conc: "+p_.id_conc+" prod: "+p_.id_prod+" pre?o: "+p_.preco+" oferta: "+p_.oferta); values.put(KEY_VENDE_PROD_ID, p_.id_prod); values.put(KEY_VENDE_CONC_ID, p_.id_conc); bd.insert(TABLE_VENDE, null, values); //String sql = "INSERT INTO vende(prod_id, conc_id, preco, oferta) values ("+ p_.id_prod+","+p_.id_conc+","+p_.preco+","+p_.oferta +");"; //bd.rawQuery(sql, null); }}\[/code\]And here's the error I get when trying to insert some values on TABLE_VENDE:\[code\]sqlite returned: error code = 1, msg = table vende has no column named ofertaError inserting oferta=0 conc_id=1 preco=1.42 prod_id=3android.database.sqlite.SQLiteException: table vende has no column named oferta: , while compiling: INSERT INTO vende(oferta, conc_id, preco, prod_id) VALUES(?, ?, ?, ?);\[/code\]I've no problem accessing the other two tables (PRODUTOS and CONCORRENTES), just table VENDE.So my questions are:Where did "oferta: " (3rd error) came from?Am I creating/accessing my DB wrong?This couldn't be SQLite's fault, could it? (probably not..)Thanks in advanceP.S.: it's my first question, so forgive me if I mess something up...
 
Top