lundi 22 février 2016

E/SQLiteLog(2082): (1) near "Security": syntax error

I am new to using SQLite so structuring the select query is what I think is the problem.

Anyway, I'm trying to get a statement prepared that will give me the module name, module lecture time and module seminar time depending on what the current day is (which is determined in MainActivity)

Below is the method to return the list getModuleTime

public List<tableModules> getModuleTime(String module1, String module2, String module3, String day) {
    List<tableModules> moduleList = new ArrayList<tableModules>();
    // Select All Query
    String selectQuery = "SELECT modulename, modulelecturetime, moduleseminartime FROM Modules WHERE modulename = " + module1 + " OR " + module2 + " OR " + module3 + " AND WHERE modulelecturedate OR moduleseminardate = " + day + "";
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            tableModules module = new tableModules();
            module.modulename = cursor.getString(1);
            module.modulelecturedate = cursor.getString(2);
            module.moduleseminardate = cursor.getString(3);
            moduleList.add(module);
        } while (cursor.moveToNext());
    }
    // return contact list
    return moduleList;      
}

Here is the logcat:

02-23 00:32:37.373: E/SQLiteLog(2328): (1) near "Security": syntax error
02-23 00:32:37.385: D/AndroidRuntime(2328): Shutting down VM
02-23 00:32:37.409: E/AndroidRuntime(2328): FATAL EXCEPTION: main
02-23 00:32:37.409: E/AndroidRuntime(2328): Process: com.example.project, PID: 2328
02-23 00:32:37.409: E/AndroidRuntime(2328): java.lang.RuntimeException: Unable to resume activity {com.example.project/com.example.project.MainActivity}: android.database.sqlite.SQLiteException: near "Security": syntax error (code 1): , while compiling: SELECT modulename, modulelecturetime, moduleseminartime FROM Modules WHERE modulename = Mod2 OR Mod3 OR Digital Security AND WHERE modulelecturedate OR moduleseminardate = Tuesday
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2989)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3020)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.os.Handler.dispatchMessage(Handler.java:102)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.os.Looper.loop(Looper.java:135)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread.main(ActivityThread.java:5257)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at java.lang.reflect.Method.invoke(Native Method)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at java.lang.reflect.Method.invoke(Method.java:372)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
02-23 00:32:37.409: E/AndroidRuntime(2328): Caused by: android.database.sqlite.SQLiteException: near "Security": syntax error (code 1): , while compiling: SELECT modulename, modulelecturetime, moduleseminartime FROM Modules WHERE modulename = Mod2 OR Mod3 OR Digital Security AND WHERE modulelecturedate OR moduleseminardate = Tuesday
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at com.example.project.DB.getModuleTime(DB.java:135)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at com.example.project.MainActivity.onResume(MainActivity.java:107)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1257)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.Activity.performResume(Activity.java:6076)
02-23 00:32:37.409: E/AndroidRuntime(2328):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2978)
02-23 00:32:37.409: E/AndroidRuntime(2328):     ... 11 more

Aucun commentaire:

Enregistrer un commentaire