delete vs execSQL commands android

Posted by erik on Stack Overflow See other posts from Stack Overflow or by erik
Published on 2012-09-12T15:13:20Z Indexed on 2012/09/12 15:38 UTC
Read the original article Hit count: 209

Filed under:
|

so i have a databas, SQLiteDatabase db I am writing a couple private methods in my manager class that will be called by a public method:

    public void updateData (MakeabilityModel newData){

        SQLiteDatabase db = this.getWritableDatabase();
        db.beginTransaction();
        try {

          reWriteSVTable(db, list);

          db.setTransactionSuccessful();
        } catch (Exception e){
           //TODO through rollback message?
           e.printStackTrace(); 
        } finally {

          db.endTransaction();
        }

    }
    //Private Methods
    private void clearTable(SQLiteDatabase db, String table){
        db.delete(table, null, null);

    }


    private void reWriteSVTable(SQLiteDatabase db, List<MakeabilityLens> lenses){
        clearTable(db, singleVision);
        ContentValues cv;
        for(int i=0; i<lenses.size(); i++){
            cv = new ContentValues();
            cv.put(colScreenID, hsID);
            cv.put(colIconID, id);
            cv.put(colRank, hsTotal);
            db.insert(isLookUp, colID, cv);     
         }
   }

My question is this.. i want to be able to throw sql exceptions back to the public method so that if there is an exception, it will kill the transaction and rollback ALL data..

it appears that using delete() and insert() methods are cleaner than execSQL() but don't throw sqlExceptions. execSQL() on the other hand does? do i need to uses execSQL and how do i insure that hsould it throws an exception in any of the private methods that it will catch it and roll it back in the private method

© Stack Overflow or respective owner

Related posts about android

Related posts about android-sqlite