Search in sources :

Example 36 with QueryToken

use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.

the class DatabaseConnectivityDirectSQLiteImpl method onUpdate.

@Override
protected int onUpdate(Query query, DatabaseObject object) {
    if (query == null || object == null || object.isEmpty()) {
        return 0;
    }
    if (mOpenHandler == null) {
        return 0;
    }
    final SQLiteDatabase db = mOpenHandler.getWritableDatabase();
    if (db == null) {
        return 0;
    }
    final ContentValues values = object.getValues();
    if (values == null) {
        db.close();
        return 0;
    }
    final Template template = object.getTemplate();
    if (template == null) {
        db.close();
        return 0;
    }
    final String table = DatabaseObject.classToTable(object.getClass());
    if (table == null) {
        db.close();
        return 0;
    }
    if (checkOrCreateTable(db, table, object) == false) {
        db.close();
        return 0;
    }
    String selection = null;
    QueryToken selToken = query.getSelection();
    if (selToken != null) {
        selection = selToken.toString();
    }
    int affected = -1;
    try {
        db.beginTransaction();
        affected = db.update(table, object.getValues(), selection, null);
        db.setTransactionSuccessful();
    } catch (SQLException e) {
        Logger.warn("database failure: %s", e.toString());
    } finally {
        try {
            db.endTransaction();
        } catch (Exception e) {
            Logger.warn("database failure: %s", e.toString());
        }
    }
    db.close();
    if (affected <= 0) {
        return 0;
    }
    return affected;
}
Also used : ContentValues(android.content.ContentValues) SQLiteDatabase(android.database.sqlite.SQLiteDatabase) SQLException(android.database.SQLException) SQLException(android.database.SQLException) Template(com.dailystudio.dataobject.Template) QueryToken(com.dailystudio.dataobject.query.QueryToken)

Aggregations

QueryToken (com.dailystudio.dataobject.query.QueryToken)36 IntegerColumn (com.dailystudio.dataobject.IntegerColumn)5 DoubleColumn (com.dailystudio.dataobject.DoubleColumn)4 TextColumn (com.dailystudio.dataobject.TextColumn)4 SQLException (android.database.SQLException)3 Uri (android.net.Uri)3 Column (com.dailystudio.dataobject.Column)3 Template (com.dailystudio.dataobject.Template)3 ContentValues (android.content.ContentValues)2 Cursor (android.database.Cursor)2 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)2 AbstractWindowedCursor (android.database.AbstractWindowedCursor)1 LongColumn (com.dailystudio.dataobject.LongColumn)1