2016-05-07 3 views
1

Der Versuch, einen Katalog-Artikel Tisch zu aktualisieren .. nur eine einfache Datenbankoperation ich mit einem seltsamen Verhalten bin steckenAndroid SQliteOpenHelper löschen Anweisung Ausgabe

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 zurückgibt: die ursprünglichen Tabellenzeilen zählen

...! vielleicht bin ich müde ^^. es funktioniert mit anderen Tabellen fein ..

die SQLiteOpenHelper (MdB) Erschaffungstabelle Code

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

wahrscheinlich müssen Sie einige Bedingungen setzen. DELETE FROM CatalogItems wo blabla = 'abc' – Stallion

+0

ersetzen 'db.rawQuery (purgeItems, null);' mit 'db.execSQL (purgeItems, null);' –

Antwort

1

rawQuery für Abfragen zu verstehen ist, die Zeilen zurückgeben. Stattdessen verwenden Sie:

db.execSQL(purgeItems); 
+0

Schande über mich !!! .. Ich bin Französisch und nur Java "Anfänger" .. dachte nur, dass RawQuery eine echte grundlegende Methode, um SQL-Anweisungen zu interpretieren war .. Thans viel! ^^ –