2016-11-22 8 views
0

Я пытаюсь получить количество строк в моей базе данных Sugar за каждый месяц. Мой DATE_INSERT является строковым значением, например dd-MM-yyyy. Я пытаюсь установить запрос, но получаю ошибку:Ошибка с запросом в 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 является значением параметра или список значений параметров. Эти значения вставляются в строку запроса в местах, отмеченных parameter marker.

Ваш запрос не содержит маркеров параметров. Вам нужно написать ... LIKE ?.

+0

Спасибо всем! За работой –

 Смежные вопросы

  • Нет связанных вопросов^_^