2016-05-07 3 views
1

Попытка обновить каталог элементов таблицы .. только основные операции базы данных я застрял со странным поведениемAndroid SQliteOpenHelper удалить вопрос заявление

String purgeItems ="DELETE FROM CatalogItems"; 

String count = "SELECT * FROM CatalogItems"; 

SQLiteDatabase db = mDb.getWritableDatabase(); // mDb extends SQLiteOpenHelper 

db.beginTransaction(); 
db.rawQuery(purgeItems,null); 
db.setTransactionSuccessful(); 
db.endTransaction(); 

Cursor c = db.rawQuery(count, null); 
Log.e(TAG, "CatalogItems after purge " + String.valueOf(c.getCount())); 

возвращает 642: сосчитать оригинальные строки таблицы

...! возможно, я устал ^^. он отлично работает с другими таблицами ..

SQLiteOpenHelper (MDB) код создания таблицы

private void createTables(SQLiteDatabase db) { 
    // --- CATALOG ITEMS --- 
    String catalogItemsTable = "CREATE TABLE CatalogItems (" + 
      "idCatalogItem  INT(11) PRIMARY KEY, " + 
      "idCatalog INT(11), " + 
      "idProduct INT(11), " + 
      "image  BLOB, " + 
      "price  FLOAT, " + 
      "quantity  INT(11), " + 
      "unit  VARCHAR(5), " + 
      "status INT(11), " + 
      "extras VARCHAR(512) " + 
      ");" ; 

db.execSQL(catalogItemsTable); 
Log.i(TAG, "table CatalogItems created"); 
+0

Возможно, вам нужно будет установить некоторые условия. DELETE FROM CatalogItems, где blabla = 'abc' – Stallion

+0

заменить 'db.rawQuery (purgeItems, null);' с 'db.execSQL (purgeItems, null);' –

ответ

1

rawQuery предназначен для запросов, которые возвращают строки. Вместо этого используйте:

db.execSQL(purgeItems); 
+0

Позор мне !!! .. Я французский и просто java «новичок» .. просто подумал, что rawQuery - это реальный базовый метод для интерпретации предложений SQL. Thans! ^^ –

Смежные вопросы