2012-10-27 26 views
5

我在设备上出现此错误,但它在另一台设备上正常工作。以下是错误:Android:SQLiteException:不是所有设备上都没有错误

Caused by: android.database.sqlite.SQLiteException: not an error 
    at android.database.sqlite.SQLiteQuery.nativeFillWindow(Native Method) 
    at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:86) 
    at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:164) 
    at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:156) 
    at com.Orange.MakeVisits.Themes.onCreate(Themes.java:162) 

我执行查询,并在该检查如果光标是空行,我得到这个错误。这里是我的代码:

String stmtGetThemes = "SELECT * FROM pr_fields_descriptor a " 
    + "inner join pr_fields_starring b on a.id_fields_descriptor = b.fields_descriptor_id " 
    + "where b.starring_id = '"+pos_starring_id+"' and a.theme_id='"+themes_ids[m]+"' order by form_rank"; 

    Cursor getThemesCursor1 = db.databaseQuery(stmtGetThemes); 

    if (getThemesCursor1!=null && getThemesCursor1.getCount()>0){ 
    //---- 
    } 

和databasequery是这种方法(在扩展SQLiteOpenHelper类的定义):

public Cursor databaseQuery(String stmt) { 
     Cursor cursor = db.rawQuery(stmt, null); 
     return cursor; 
    } 

任何想法可能会导致这个错误?声明不好?为什么它适用于其他设备? 欢迎任何想法。感谢advace。

+0

如果'pos_starring_id'和'themes_ids [m]'是整数,则应该从查询中移除它们周围的引号(''')标记,以免它们被视为字符串。 – Barak

回答

0

不及格数组类型Paramters在查询,有时它不会工作

int themes_id = themes_ids[m]; 

String stmtGetThemes = "SELECT * FROM pr_fields_descriptor a inner join pr_fields_starring b on a.id_fields_descriptor = b.fields_descriptor_id where b.starring_id = '"+pos_starring_id+"' AND a.theme_id = '"+themes_id+"' ORDER BY form_rank"; 

Cursor getThemesCursor1 = db.databaseQuery(stmtGetThemes); 

if (getThemesCursor1 != null && getThemesCursor1.getCount() != 0){ 
//---- 
} 
+0

我改变了你说的,但它仍然崩溃。 – Gabrielle

+0

检查空白是否正确使用 – RajeshVijayakumar

+0

我没有看到任何可能使其崩溃的空白。 – Gabrielle

0
String stmtGetThemes = "SELECT * FROM pr_fields_descriptor a " 
    + "inner join pr_fields_starring b on a.id_fields_descriptor = b.fields_descriptor_id " 
    + "where b.starring_id = '"+pos_starring_id+"' and a.theme_id='"+themes_ids[m]+"' order by form_rank"; 

不终止此查询“”。

相关问题