2017-06-14 73 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 + 
      ");"; 
相關問題