【问题标题】:SSS Report Builder 3.0 Query Parameter - Report PreviewSSS Report Builder 3.0 查询参数 - 报告预览
【发布时间】:2017-11-23 05:24:44
【问题描述】:

这对我来说有点奇怪。我正在使用 SSRS Report Builder 3.0 创建报告。我有两个选择:1. 使用与报表参数链接的过滤器或 2. 使用与报表参数链接的查询参数。

在第一种情况下,报表预览效果很好。我正在使用对 ID 列应用参数 (@parameter_a) 的过滤器进行简单查询:

Select ID, Name from tbl_Table

但是当我使用链接到报表参数的查询参数时,预览是空白的。对于查询参数,我使用以下查询:

SELECT ID, Name FROM tbl_Table WHERE ID = @parameter_a

我对此一无所知。我也尝试过保留默认值或删除它。刷新/查看报告也不起作用。

PS:我正在使用 MySql ODBC 连接。在 c# 应用程序中使用并以编程方式呈现时,报告中的两个选项都可以正常工作。尝试重新安装当前版本,旧版本也是如此。

【问题讨论】:

    标签: mysql reporting-services reportbuilder3.0


    【解决方案1】:

    阅读MySQLCommand documentation,有一个旧参数语法的引用(不确定你在这个场景中使用的是什么版本的MySQL)。

    现在首选的方法是使用“@”符号作为参数 虽然使用“?”的旧模式仍然支持。请成为 知道虽然使用'@'可能会在用户变量时导致冲突 也被使用。为了帮助解决这种情况,请参阅 有关“允许用户变量”连接字符串选项的文档。 “旧语法”连接字符串选项现已弃用。

    你可以试试?,而不是@

    SELECT ID, Name FROM tbl_Table WHERE ID = ?
    

    查询中使用的参数顺序必须与 SSRS 报告参数的顺序相匹配。

    【讨论】:

    • SSRS 无法识别带有 ? 的参数前任。它需要一个以@开头的参数。
    • 就是这样...排序。非常感谢您的帮助。
    • @Daniel 我的数据集中的 MySQL 存储过程也有类似的问题。我使用查询类型作为文本,然后使用call testProc ( ?, ?,?, ?, ?,? ); 但它不返回任何行。我在数据集的参数部分以正确的顺序提及参数。当我将我的 proc 更改为只返回所有行(从查询中删除参数过滤器)时,我也会在我的 SSRS 报告中得到结果。任何建议都会有所帮助。
    • 搞定了。我仍然无法在查询设计器中看到结果,但至少在我实际执行报告时它可以工作。下面的链接解决了我的问题。没有意识到我必须从字面上将参数名称更改为 Parameter1、Parameter2 等等。stackoverflow.com/questions/10814477/…
    猜你喜欢
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多