0

Below is my code:

try{
    String userid = SystemPlatformFactory.getPlatform().getSystem().getUserID();
    String[] args = new String[]{userid};
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("DELETE sa FROM stubout_account sa INNER JOIN stubout s ON sa.parentid = s.objid INNER JOIN area r ON s.areaid = r.objid WHERE r.assigneeid = ?",args);
    db.close();
}catch(Exception e){
    e.printStackTrace();
    ERROR = "Database Error: " + e.toString();
}

Executing the code above will produce this error:

W/System.err(31732): android.database.sqlite.SQLiteException: near "sa": syntax error (code 1): , while compiling: DELETE sa FROM stubout_account sa INNER JOIN stubout s ON sa.parentid = s.objid INNER JOIN area r ON s.areaid = r.objid WHERE r.assigneeid = ?
W/System.err(31732):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
W/System.err(31732):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1093)
W/System.err(31732):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:670)
W/System.err(31732):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
W/System.err(31732):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
W/System.err(31732):    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
W/System.err(31732):    at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1798)
W/System.err(31732):    at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1779)
W/System.err(31732):    at com.rameses.waterworks.database.AndroidDatabase.clearStuboutAccount(AndroidDatabase.java:889)
W/System.err(31732):    at com.rameses.waterworks.page.Download.clearReadingGroups(Download.java:372)
W/System.err(31732):    at com.rameses.waterworks.page.Download.access$000(Download.java:48)
W/System.err(31732):    at com.rameses.waterworks.page.Download$2.handle(Download.java:146)
W/System.err(31732):    at com.rameses.waterworks.page.Download$2.handle(Download.java:97)

What is the cause of the error? How to fix this one?

Walker
  • 307
  • 4
  • 15
  • 1
    Try this `DELETE FROM stubout_account where(select * from stubout_account sa INNER JOIN stubout s ON (sa.parentid = s.objid) INNER JOIN area r ON (s.areaid = r.objid) WHERE r.assigneeid = ?)` – Neo Mar 19 '16 at 08:29
  • @MrNeo This is not valid SQL. – CL. Mar 19 '16 at 09:06

1 Answers1

-1
db.execSQL("DELETE sa.* FROM stubout_account sa INNER JOIN stubout s ON sa.parentid = s.objid INNER JOIN area r ON s.areaid = r.objid WHERE r.assigneeid = ?",args);
Rocco
  • 110
  • 5