Обрабатывать параметры запроса URL в Play!Оператор SQL? - PullRequest
0 голосов
/ 01 сентября 2011

Я тестирую приложение Ext JS (на стороне клиента) и Play Framework (на стороне обслуживания).Я использую сетку в Ext JS с нумерацией страниц .

Для нумерации страниц необходимо отправить параметры запроса URL в мою Play!сервер.В этом нет ничего сложного, но как обработать эти параметры в операторе SQL ??

Пример:

Первый запрос:

http://myDomain:9000/GetUsers?_dc=123456789&page=1&start=0&limit=25

Второй запрос:

http://myDomain:9000/GetUsers?_dc=123456789&page=2&start=25&limit=25

Мои мысли: Обычно в SQL вы можете установить TOP результаты:

SELECT TOP 25 FROM USERS

Но как перевести второй запрос в Sqlвопрос?

Спасибо, что нашли время помочь мне!

====== >> РЕДАКТИРОВАТЬ: я работаю на SQL Server 2008, но яхотите, чтобы это работало на Sql Server 2005 или выше и Oracle 9 и выше: -)

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Так как вы используете Play! Framework, то, что вы должны сделать, это иметь правильную модель , с сущностями, представляющими ваши таблицы SQL. Тогда получение диапазона результатов будет встроенным :

// 25 max users start at 25
List<User> users = User.all().from(25).fetch(25);

Вы также должны взглянуть на модуль нумерации страниц . Я не проверял это, но похоже, что вы хотите.

0 голосов
/ 01 сентября 2011

Вы можете попробовать что-то вроде:

WITH Query_1 AS (
    SELECT
        Field1, Field2, etc
        ROW_NUMBER() OVER (ORDER BY Field1, Field2, etc) AS RowID
    FROM Table
    WHERE x=y
)
SELECT * FROM Query_1 WHERE RowID >= @start
AND RowID < @start + @limit

Конечно, ROW_NUMBER не существовало в SQL 2000, но, поскольку вы не сказали нам , с каким SQL вы работаете, я предполагаю что-то более новое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...