Вопрос
Не работает быстрый фильтр по CustomSQL-полю в 3.4
13 августа 2011 14:22
Здравствуйте, уважаемые коллеги!
Заметил такую штуку. Один и тот же датасет в конфигурации 3.3.2.198 и в 3.4.0.38 ведёт себя по-разному при добавлении быстрого фильтра в реестре. В 3.3.2 всё отлично работает, но в 3.4 реестр остаётся пустым. Профайлер показывает следующее:
в 3.3.2:
exec sp_executesql N'SELECT TOP 40
[tbl_Document].[ID] AS [ID],
[tbl_Document].[Code] AS [Code],
case
when [tbl_Document].[Description] is null
then 0
else 1
end AS [IsHasDescription]
FROM
[dbo].[tbl_Document] AS [tbl_Document]
WHERE((case
when [tbl_Document].[Description] is null
then 0
else 1
end = @P1))',N'@P1 int',1
[tbl_Document].[ID] AS [ID],
[tbl_Document].[Code] AS [Code],
case
when [tbl_Document].[Description] is null
then 0
else 1
end AS [IsHasDescription]
FROM
[dbo].[tbl_Document] AS [tbl_Document]
WHERE((case
when [tbl_Document].[Description] is null
then 0
else 1
end = @P1))',N'@P1 int',1
в 3.4.0:
exec sp_executesql N'SELECT TOP 40
[tbl_Document].[ID] AS [ID],
[tbl_Document].[Code] AS [Code],
case
when [tbl_Document].[Description] is null
then 0
else 1
end AS [IsHasDescription]
FROM
[dbo].[tbl_Document] AS [tbl_Document]
WHERE((NULL = @P1))',N'@P1 int',1
[tbl_Document].[ID] AS [ID],
[tbl_Document].[Code] AS [Code],
case
when [tbl_Document].[Description] is null
then 0
else 1
end AS [IsHasDescription]
FROM
[dbo].[tbl_Document] AS [tbl_Document]
WHERE((NULL = @P1))',N'@P1 int',1
Как тут быть?
Нравится
3 комментария
14 августа 2011 23:31
Анатолий, попробуйте поместить CustomSQL в subselect. Возможно ситуация изменится.
15 августа 2011 08:09
Спасибо, Стас! Помогло! Да, в subselecte ест вполне корректно. Давным-давно Дима Мушенко открыл этот способ обхитрить ядро, но мне не пришло в голову применять этот трюк на 3.4.
Ох, чёрт, значит, при переносе с 3.3 на 3.4 надо все такие колонки в subselect засунуть. Хоть бы их немного оказалось... :smile:
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать