2017-06-14 77 views
0

我花了一些时间来尝试解决这个问题,但我不知道我的sql创建条目中的问题在哪里..Android SQLiteException:接近“(”:语法错误(代码1):

错误:

android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: CREATE VIRTUAL TABLE CommerceName (_id TEXT PRIMARY KEY,id INTEGER,name TEXT,category TEXT,imageref TEXT) 

在此先感谢

CODE:

public static final String SQL_CREATE_ENTRIES = 
      "CREATE VIRTUAL TABLE " + CommerceSearchReaderDbHelper.CommerceNameSearchEntry.TABLE_NAME + " (" + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry._ID   + TEXT_TYPE +" PRIMARY KEY," + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_ID  + INTEGER_TYPE + COMMA_SEP + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_NAME + TEXT_TYPE + COMMA_SEP + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_CATEGORY+ TEXT_TYPE + COMMA_SEP + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_IMAGEREF + TEXT_TYPE + 
        ")"; 

    public static final String SQL_DELETE_ENTRIES = 
      "DROP TABLE IF EXISTS " + CommerceSearchReaderDbHelper.CommerceNameSearchEntry.TABLE_NAME; 

    public static abstract class CommerceNameSearchEntry implements BaseColumns { 
     public static final String TABLE_NAME  = "CommerceName"; 
     public static final String COLUMN_ID  = SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA; 
     public static final String COLUMN_NAME  = SearchManager.SUGGEST_COLUMN_TEXT_1; 
     public static final String COLUMN_CATEGORY = SearchManager.SUGGEST_COLUMN_TEXT_2; 
     public static final String COLUMN_IMAGEREF = SearchManager.SUGGEST_COLUMN_ICON_1; 
    } 

回答

1

如果你真的打算创建一个虚拟表,然后你缺少“USING module_name”。见here

如果您不打算创建虚拟表格(可能是因为您使用的是Android),那么您应该从CREATE声明中删除“虚拟”。语法是here

+0

你是什么意思有:缺少“使用MODULE_NAME –

+0

不知道如何实现它在我代码... –

+0

虚拟表需要一个后台实现,因为你已经指定了Android标记,所以我实际上假设你不打算创建一个虚拟表(因为这是相对复杂的),更有可能你打算创建一个常规表。我将更新答案。 – Dave

1

你缺少你CommerceSearchReaderDbHelper.CommerceNameSearchEntry._ID和TEXT_TYPE等之间的空隙用这个代替:

public static final String SQL_CREATE_ENTRIES = 
      "CREATE VIRTUAL TABLE " + 
      CommerceSearchReaderDbHelper.CommerceNameSearchEntry.TABLE_NAME + " (" + CommerceSearchReaderDbHelper.CommerceNameSearchEntry._ID   
      + " " + TEXT_TYPE +" PRIMARY KEY," + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_ID + " " + INTEGER_TYPE + COMMA_SEP + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_NAME + " " + TEXT_TYPE + COMMA_SEP + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_CATEGORY + " " + TEXT_TYPE + COMMA_SEP + 
        CommerceSearchReaderDbHelper.CommerceNameSearchEntry.COLUMN_IMAGEREF + " " + TEXT_TYPE + 
      ");"; 
相关问题