Здравствуйте. Сформировал запрос в сервисе SelectQuery на колонках с собственным текстом SQL.
Получилось:
/* AS [Go],
*/
[tbl_CustomDatesTable].[Comment] AS [Comment],
[tbl_CustomDatesTable].[Date] AS [Date],
[tbl_CustomDatesTable].[ID] AS [ID] /* AS [ID],
*/
FROM dbo.tbl_CustomDatesTable
WITH (nolock)
IF 1=0
SELECT 1 AS [Finish]
FROM
[dbo].[tbl_Account] AS [tbl_Account];
Однако, справочник таким образом не открывается, на обычном SelectQuery с конструкторными колонками все нормально. Недоработка или что? Для каждого столбца специально также была взята отдеальная колонка с текстом. Объясните пожалуйста в чем проблема и причины отсутствия возможности формирования датасета таким методом.
Нравится
Такое ощущение что террасофт просто забивает на то что закомментировано и пытается все железно забрать и конструкторского FROM
"Нестеров Артем Валерьевич" написал:справочник таким образом не открывается
может быть ошибку какую-то дает?
приведенный текст запроса взят откуда? хорошо бы его надо взять из предпросмотра в сервисе SelectQuery или из профайлера
"Андросов Дмитрий" написал:Нестеров Артем Валерьевич пишет:
справочник таким образом не открывается
может быть ошибку какую-то дает?
приведенный текст запроса взят откуда? хорошо бы его надо взять из предпросмотра в сервисе SelectQuery или из профайлера
Из предпросмотра естественно и взят, ошибки нет, просто тупо игнорит попытку открыть справочник, зато если в конце во втором FROM указать действительную таблицу, где всё это находится - он открывает справочник! Но по условию IF этого же выполняться не должно, в другом смысл изначально...
Ну и плюс убрал комментарии из полей, которые отображаются. Вот так открывает:
SELECT /* AS [Go], */ [tbl_CustomDatesTable].[CreatedOn] AS [CreatedOn], [tbl_CustomDatesTable].[Comment] AS [Comment], [tbl_CustomDatesTable].[Date] AS [Date], [tbl_CustomDatesTable].[ID] AS [ID], [tbl_CustomDatesTable].[ModifiedOn] AS [ModifiedOn]/* AS [ModifiedOn], */ FROM dbo.tbl_CustomDatesTable with (nolock) IF 1=0 SELECT 1 AS [Finish] FROM [dbo].[tbl_CustomDatesTable] AS [tbl_CustomDatesTable]
Но мне надо чтобы эта вещь работала без второго FROM, т.к. таблица находится на другой базе вообще и смысла писать всё это не было бы.
ничего не пишите в последней кастомной колонке, но создайте CustomSQL-фильтр с текстом
*/--
Вышел такой текст запроса:
SELECT /* AS [Go], */ [tbl_CustomDatesTable].[CreatedOn] AS [CreatedOn], [tbl_CustomDatesTable].[Comment] AS [Comment], [tbl_CustomDatesTable].[Date] AS [Date], [tbl_CustomDatesTable].[ID] AS [ID], [tbl_CustomDatesTable].[ModifiedOn] AS [ModifiedOn]/* AS [ModifiedOn], */ FROM [dbo].[tbl_CustomDatesTable] AS [tbl_CustomDatesTable] with (nolock) /* AS [Finish] FROM [dbo].[tbl_CustomDatesTable] AS [tbl_CustomDatesTable] WHERE(*/--)
Самому все нравится, но террасофт походу отказывается его понимать и не хочет открывать справочник с этими полями
Может какие то правила синтаксиса? Или все таки то что я делаю - нереализуемо в террасофте? Прошу помощи
Поймали запрос из Террасофта на сервере и выяснилось что ни нолок, ни половина запроса указанные за комментариями не передается. Железно передается закоменченная таблица из второго FROM! И параметры столбцов. Это мы чего-то не понимаем или тут действительно такое накручено?
А когда отловили из предзапуска предпропросмотра - передался полноценный текст запроса...И как с этим работать, собственно говоря, если это не работает?
в сервисе датасета не выбран сервис запроса на выборку. Вернее там стоит sq_CustomDatesSelect
Все там выбрано было, это я просто пробовал стандартный конктруктор запроса подставлять. Не в этом причина проблемы.
Здравствуйте, Артем!
В Terrasoft не реализована возможность добавления табличных указаний. При разборе запроса ядром системы используется тот блок FROM, который задается в соответствующем поле, поэтому даже если его закомментировать, он все равно будет использоваться, поэтому хитрости с комментариями не проходят.