Использование параметров в MS Reporting Services (SQL Server 2008) с источником данных ODBC
Я пишу отчет в Visual Studio, который принимает параметр ввода пользователя и работает с источником данных ODBC. Я хотел бы написать запрос вручную и попросить службы отчетов заменить часть предложения where значением параметра перед его отправкой в базу данных. Кажется, что происходит то, что, как @parmName
я предполагаю, будет заменена, на самом деле отправляется как часть оператора SQL. Мне где-то не хватает настройки конфигурации или это просто невозможно?
Я не использую опцию фильтра в инструменте, потому что это, похоже, возвращает полный набор данных из базы данных и выполняет фильтрацию на SQL Server.
Ответов (4)4
Похоже, вам нужно рассматривать оператор SQL как выражение. Например:
="Select col1, col2 from table 1 Where col3 = " & Parameters!Param1.Value
Если предложение where является строкой, вам необходимо сделать следующее:
="Select col1, col2 from table 1 Where col3 = '" & Parameters!Param1.Value & "'"
Важно: не используйте разрывы строк в выражении SQL. Если вы это сделаете, вы получите сообщение об ошибке.
Холла, возвращайся, если тебе понадобится дополнительная помощь.
Я немного запутался в этом вопросе, если вы ищете простое использование параметров, тогда обозначение будет следующим:, *paramName*
однако, если вы хотите структурно изменить WHERE
предложение (как вы могли бы использовать sql +?), Тогда вам действительно следует использовать собственный код внутри отчет для определения функции, которая возвращает требуемый sql для запроса.
К сожалению, при использовании настраиваемого кода нельзя напрямую ссылаться на параметры в сгенерированном запросе, но их значения должны быть объединены в результирующую строку, что создает возможность для SQL
внедрения.