2016-11-22 13 views
0

Sugarデータベースの行数を毎月取得しようとしています。私のDATE_INSERTはdd-MM-yyyyのようなString値です。クエリを設定しようとしていますが、エラーが発生しています:SugarORMのクエリでエラーが発生しました

android.database.sqlite.SQLiteException: near "LIKE": syntax error (code 1): , while compiling: SELECT * FROM EXERCISE_DATA WHERE DATE_INSERT LIKE 

私の方法です。私はGraphViewを経由して各月のリストのサイズを取得し、それを描画しようとしている:

private DataPoint[] generateYearlyData() { 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.MONTH,Calendar.JANUARY); 
     int monthIndex = 12; 
     DataPoint[] values = new DataPoint[monthIndex]; 
     for (int i=0; i < monthIndex; i++) { 
      SimpleDateFormat sdf = new SimpleDateFormat("MM-yyyy"); 
      String queryMonth = sdf.format(cal.getTime()); 
      String completeArgs = new StringBuilder().append("'%"). 
        append(queryMonth).append("%'").toString(); 
      double x = i; 
      double y = (double) ExerciseData.findWithQuery(ExerciseData.class, 
        "SELECT * FROM EXERCISE_DATA WHERE DATE_INSERT LIKE",completeArgs).size(); 
      DataPoint v = new DataPoint(x, y); 
      values[i] = v; 
      cal.add(Calendar.MONTH, 1); 
     } 
     return values; 
    } 
+0

'LIKE'の後にスペースが必要なのでしょうか? –

+0

うん、ティム。私はちょうど見つけた。私はStackoverflowでポストの後に問題を解決することができます=) –

+0

@CLによって与えられた答えを確認してください。それはおそらく正しいでしょう。 –

答えて

0

findWithQueryの3番目のパラメータは、パラメータ値、またはパラメータ値のリストです。これらの値は、parameter markerとマークされた場所のクエリ文字列に挿入されます。

クエリにパラメータマーカーが含まれていません。あなたは... LIKE ?と書く必要があります。

+0

ありがとうございました!ワーキング –

関連する問題