2012-01-30 3 views
0

Я пишу запрос выбора, как это:как запросить SQLite с помощью предела

'String selection3 = TriplePayProviderMetaData.ProgramTableMetaData.PROGRAM_LCN + " = '" + channelLcn + "'" + " AND " + TriplePayProviderMetaData.ProgramTableMetaData.PROGRAM_START_TIME + " > " + " '" + time + "'" + " LIMIT " + " '" + 3 + "'";'

Но это говорит о синтаксической ошибке в пределе:

'android.database.sqlite.SQLiteException: near "LIMIT": syntax error: , while compiling: SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time > '1327026600000' LIMIT '3') ORDER BY start_time ASC E/AndroidRuntime(15912): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:158) E/AndroidRuntime(15912): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) E/AndroidRuntime(15912): at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:330) E/AndroidRuntime(15912): at android.content.ContentProviderProxy.query(ContentProviderNative.java:366) E/AndroidRuntime(15912): at android.content.ContentProviderClient.query(ContentProviderClient.java:49) E/AndroidRuntime(15912): at com.vovinet.miniepguru.MiniEpgActivity$1.onClick(MiniEpgActivity.java:150) E/AndroidRuntime(15912): at android.view.View.performClick(View.java:2485) E/AndroidRuntime(15912): at android.view.View.onKeyUp(View.java:4257) E/AndroidRuntime(15912):
at android.view.KeyEvent.dispatch(KeyEvent.java:1280) E/AndroidRuntime(15912): at android.view.View.dispatchKeyE W/ActivityManager(1133): Force finishing activity com.vovinet.miniepguru/.MiniEpgActivity W/ActivityManager(1133): Activity pause timeout for HistoryRecord{40630af0 com.vovinet.miniepguru/.MiniEpgActivity}'

ответ

2

Вы передаете предел, как String. Предел - целочисленное значение. Поэтому удалите "'" тег из предела.

Также Предельное имеет два параметра

LIMIT 0, 10

1st value 0 show that start getting record form 0 position. 2nd value 10 show that get then record from starting position. So it will return 1st 10 records.

if you say 10 , 10. It will get 10-20 record form the cursor. As starting position is 10 and no of record is also 10.

Вы также можете проверить эту ссылку http://www.sqlite.org/lang_select.html

Отредактировано: ваш запрос

SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time > '1327026600000' LIMIT 0 , 3) ORDER BY start_time ASC

В основном вы добавляете ограничение неправильно

LIMIT используется после того, как ORDER BY Cluse (проверьте ссылку http://www.sqlite.org/lang_select.html)

Это должно быть

SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time > '1327026600000') ORDER BY start_time ASC LIMIT 0 , 3

+0

привет Арслан спасибо за ваш быстрый response.if я использую как и выше, но это дает тот же error' android.database.sqlite.SQLiteException: рядом с «LIMIT»: ошибка синтаксиса:, при компиляции: SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time> '1327026600000' LIMIT 0, 3) ORDER BY start_time ASC' – malli

+0

СПАСИБО ЗА ОТВЕТ , используя вышеуказанный запрос выбора, как написать запрос, чтобы получить результат 'SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time> '1327026600000') ORDER BY start_time ASC LIMIT 0, 3' вот так. – malli

+0

Какая ошибка сейчас? Разве это не работает? – Arslan

0

На самом деле SQLiteDatabase имеет функцию, чтобы сделать эту вещь ,

запрос публичного курсора (таблица строк, String [] колонна, выбор String, String [] selectionArgs, String группиЙ, String, имеющая, String OrderBy, предел String) запроса данной таблицы, возвращая курсор на наборе результатов.

limit Ограничивает количество строк, возвращаемых запросом, отформатированное как предложение LIMIT. Передача null не означает предложение LIMIT.

Пожалуйста, посмотрите на here

+0

hi hubert Спасибо за ваш ответ, на самом деле, я запрашиваю данные из базы данных. Если запрос по приведенным выше аргументам дает ошибку компиляции, запрос метода в содержимом поставщика контента tupe неприменим – malli

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