Ошибка Sql для простого дозвукового примера - PullRequest
1 голос
/ 31 января 2011

Я тестирую SubSonic, но застрял на своем первом простом примере. У меня есть таблица новостей, которую я пытаюсь получить из 10 последних результатов:

var newsItems = News.GetPaged("datecreated", 0, 10);

Это приводит к этой ошибке:

[MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-10, 10' at line 6]

Сгенерированный SQL:

SELECT `newsid`, `datecreated`, `headline`, `body`, `link`, `picture`, `linkinfo`, `postedby`, `comments`, `category` FROM news  ORDER BY newsid DESC LIMIT -10,10

Легко исправить sql вручную, но я понятия не имею, как заставить SubSonic автоматически добавить правильный LIMIT в запрос. Есть указатели?

1 Ответ

0 голосов
/ 31 января 2011

Предел должен быть положительным целым числом, начиная с 0. -10, 10 не

http://dev.mysql.com/doc/refman/5.0/en/select.html

-The LIMIT может использоваться для ограничения количества строк, возвращаемых оператором SELECT. LIMIT принимает один или два числовых аргумента, которые оба должны быть неотрицательными целочисленными константами (кроме случаев использования подготовленных операторов).

Сгенерированный SQL должен был быть

SELECT `newsid`, `datecreated`, `headline`, `body`, `link`, `picture`,
    `linkinfo`, `postedby`, `comments`, `category`
FROM news  ORDER BY newsid DESC LIMIT 10;

Я думаю, что Subsonic вам нужно это

var newsItems = News.GetPaged("datecreated", 1, 10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...