[Bug] Take, Skip in MS SQL 2005
От: Holms США  
Дата: 07.03.10 04:28
Оценка:
Linq

var query =    from e in db.Customer
                        select e;

query = query.Skip(startIndex).Take(maxPageRows);

return query;


генерит такой SQL
SELECT *
FROM
(
    SELECT
        t.*,
        ROW_NUMBER() OVER
        (
            ORDER BY
                t.[CustomerID],
                t.[CustomerName],
                t.[ContactName],
                t.[DefaultClientRate],
                t.[Email],
                t.[AddressLine1],
                t.[AddressLine2],
                t.[City],
                t.[PostCode],
                t.[State1],
                t.[PhoneNo],
                t.[FaxNo],
                t.[MobileNo],
                t.[Notes]
        ) as rn
    FROM
    (
        SELECT
            [e].[CustomerID],
            [e].[CustomerName],
            [e].[ContactName],
            [e].[DefaultClientRate],
            [e].[Email],
            [e].[AddressLine1],
            [e].[AddressLine2],
            [e].[City],
            [e].[PostCode],
            [e].[State] as [State1],
            [e].[PhoneNo],
            [e].[FaxNo],
            [e].[MobileNo],
            [e].[Notes]
        FROM
            [Customers] [e]
    ) t
) t1
WHERE
    t1.rn BETWEEN 1 AND 5


который выдает такое исключение
Msg 306, Level 16, State 2, Line 22
The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.


если поле [e].[Notes] убрать из ORDER BY запроса то всё нормально. Не ясно почему нельзя только первичный ключ использовать в Order by?

Спасибо
... << RSDN@Home 1.2.0 alpha 4 rev. 1465>>
The life is relative and reversible.
Re: [Bug] Take, Skip in MS SQL 2005
От: Димчанский Литва http://dimchansky.github.io/
Дата: 08.03.10 08:14
Оценка:
Здравствуйте, Holms, Вы писали:

H>Не ясно почему нельзя только первичный ключ использовать в Order by?


Я вот тоже не очнеь понимаю этого момента. Что LINQ2SQL, что BLT пихают в order by все столбцы, которые участвуют в выборке. Зачем — пока не осилил.
Re[2]: [Bug] Take, Skip in MS SQL 2005
От: IT Россия linq2db.com
Дата: 08.03.10 14:31
Оценка:
Здравствуйте, Димчанский, Вы писали:

H>>Не ясно почему нельзя только первичный ключ использовать в Order by?


Д>Я вот тоже не очнеь понимаю этого момента. Что LINQ2SQL, что BLT пихают в order by все столбцы, которые участвуют в выборке. Зачем — пока не осилил.


Разберёмся и пофиксим.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: [Bug] Take, Skip in MS SQL 2005
От: Spaider Верблюд  
Дата: 03.08.11 11:55
Оценка:
Здравствуйте, IT, Вы писали:

IT>Разберёмся и пофиксим.


Прошу пардону за некропост
Таки разобрались и пофиксили? А то только что в BLT 4.1 на эту граблю наступил
--
К вашим услугам,
Re[3]: [Bug] Take, Skip in MS SQL 2005
От: DorfDepp  
Дата: 03.08.11 12:30
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Димчанский, Вы писали:


H>>>Не ясно почему нельзя только первичный ключ использовать в Order by?


Д>>Я вот тоже не очнеь понимаю этого момента. Что LINQ2SQL, что BLT пихают в order by все столбцы, которые участвуют в выборке. Зачем — пока не осилил.


IT>Разберёмся и пофиксим.


Каким образом вы пофиксите чужой продукт? Вы с Майкрософте работаете?
Re[4]: [Bug] Take, Skip in MS SQL 2005
От: Spaider Верблюд  
Дата: 03.08.11 12:35
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>Каким образом вы пофиксите чужой продукт? Вы с Майкрософте работаете?


Разговор идет о BLT. В нём могут разобраться и пофиксить некоторые мега-мозги, которые тут иногда обитают
Кстати, если явно указать orderby blah в запросе, то SQL не перечисляет все поля. В BLT 4.1 это так, как в L2S, не знаю
--
К вашим услугам,
Re[5]: [Bug] Take, Skip in MS SQL 2005
От: DorfDepp  
Дата: 03.08.11 12:47
Оценка: :)
Здравствуйте, Spaider, Вы писали:

S>Здравствуйте, DorfDepp, Вы писали:


DD>>Каким образом вы пофиксите чужой продукт? Вы с Майкрософте работаете?


S>Разговор идет о BLT. В нём могут разобраться и пофиксить некоторые мега-мозги, которые тут иногда обитают

S>Кстати, если явно указать orderby blah в запросе, то SQL не перечисляет все поля. В BLT 4.1 это так, как в L2S, не знаю

Что такое BLT?
Re[6]: [Bug] Take, Skip in MS SQL 2005
От: Spaider Верблюд  
Дата: 03.08.11 12:58
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>Что такое BLT?


Я прямо теряюсь. Business Layer Toolkit, эта та шняга, которой посвящен этот раздел форума RSDN.
Надеюсь, на вопрос, что такое RSDN, отвечать не надо?
--
К вашим услугам,
Re[7]: [Bug] Take, Skip in MS SQL 2005
От: DorfDepp  
Дата: 03.08.11 13:14
Оценка:
Здравствуйте, Spaider, Вы писали:

S>Здравствуйте, DorfDepp, Вы писали:


DD>>Что такое BLT?


S>Я прямо теряюсь. Business Layer Toolkit, эта та шняга, которой посвящен этот раздел форума RSDN.


Никогда о таком не слышал. Это какая-то местная российская штука? Просто я последние несколько лет прожил за рубежом и не слышал такое название ни разу, ни в американских, ни в европейских сообществах.
Re[8]: [Bug] Take, Skip in MS SQL 2005
От: Аноним  
Дата: 03.08.11 13:28
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>>>Что такое BLT?


S>>Я прямо теряюсь. Business Layer Toolkit, эта та шняга, которой посвящен этот раздел форума RSDN.


ну вот и случилось...
Re[9]: [Bug] Take, Skip in MS SQL 2005
От: Spaider Верблюд  
Дата: 03.08.11 14:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, DorfDepp, Вы писали:


DD>>>>Что такое BLT?


S>>>Я прямо теряюсь. Business Layer Toolkit, эта та шняга, которой посвящен этот раздел форума RSDN.


А>ну вот и случилось...


Ай, ну ладно, пальцы заплелись
--
К вашим услугам,
Re[4]: [Bug] Take, Skip in MS SQL 2005
От: IT Россия linq2db.com
Дата: 04.08.11 03:41
Оценка:
Здравствуйте, Spaider, Вы писали:

S>Прошу пардону за некропост

S>Таки разобрались и пофиксили? А то только что в BLT 4.1 на эту граблю наступил

Primary Key у таблицы определён?
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: [Bug] Take, Skip in MS SQL 2005
От: IT Россия linq2db.com
Дата: 04.08.11 04:39
Оценка:
Здравствуйте, Spaider, Вы писали:

S>Таки разобрались и пофиксили? А то только что в BLT 4.1 на эту граблю наступил


Fixed. Хотя всё же непонятно, зачем нужен пэйджинг без сортировки
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: [Bug] Take, Skip in MS SQL 2005
От: Spaider Верблюд  
Дата: 04.08.11 06:36
Оценка:
Здравствуйте, IT, Вы писали:

IT>Fixed. Хотя всё же непонятно, зачем нужен пэйджинг без сортировки


Вобщем-то, твоя правда. Как-то вот сначала написалось, запустилось, а потом подумалось и вставилось orderby.
Пойду, что ли, прочитаю Отче наш 10 раз перед сном
А как насчет вот этого бага? Re: Баги
Автор: Spaider
Дата: 02.08.11
... << RSDN@Home 1.2.0 alpha 5 rev. 1514>>
--
К вашим услугам,
Re[8]: [Bug] Take, Skip in MS SQL 2005
От: ili Россия  
Дата: 04.08.11 07:47
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>Никогда о таком не слышал. Это какая-то местная российская штука? Просто я последние несколько лет прожил за рубежом и не слышал такое название ни разу, ни в американских, ни в европейских сообществах.


нууу, судя по тому что разработчик живет ин зе ЮЭсЭй, не такая уж и русская
а ознакомиться стоит http://projects.rsdn.ru/RFD/wiki особенно, раз уж вы забрели на этот раздел, видать судьба...
Re[9]: [Bug] Take, Skip in MS SQL 2005
От: DorfDepp  
Дата: 04.08.11 09:45
Оценка: -1 :))
Здравствуйте, ili, Вы писали:

ili>Здравствуйте, DorfDepp, Вы писали:


DD>>Никогда о таком не слышал. Это какая-то местная российская штука? Просто я последние несколько лет прожил за рубежом и не слышал такое название ни разу, ни в американских, ни в европейских сообществах.


ili>нууу, судя по тому что разработчик живет ин зе ЮЭсЭй, не такая уж и русская

ili>а ознакомиться стоит http://projects.rsdn.ru/RFD/wiki особенно, раз уж вы забрели на этот раздел, видать судьба...

Ну его нафиг. Была бы хорошая вещь, давно бы расползлась по всему миру и стала известной. А раз не случилось, значит, слабовато оно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.