如何将 uniqueidentifier 参数传递给 SSRS 报表生成器中的存储过程?

How to pass a uniqueidentifier param to a stored procedure in SSRS Report Builder?

提问人:EffervescingElephant 提问时间:10/13/2023 最后编辑:marc_sEffervescingElephant 更新时间:10/13/2023 访问量:55

问:

我需要 SSRS 中的数据来自一个采用一个参数(唯一标识符)的存储过程。在报表生成器的数据源中,我获得了正确的测试连接。

在我的数据集中,我告诉 SSRS 使用存储过程(在本例中名为“ReportQuery”),并在从左侧菜单中选择的“参数”选项卡中添加正确的值。但是,当我运行报告时,没有显示任何数据 - 什么都没有。也没有错误消息。 如果我转到查询设计器并将值更改为“Text”,则可以编写对存储过程的调用并添加参数,然后通过单击“运行”图标(感叹号)执行此操作,即可在查询设计器的下部窗格中正确看到数据。因此,这在查询设计器中有效。

ReportQuery @CompanyId = '59270CA0-8AC7-4D2C-BC9C-1088BC8186F2'

显然,我需要在运行时确定此参数,但我什至还没有处理它。

将此设置为具有相同值的“文本”,保持不变,然后运行报告,我再次一无所获 - 没有数据。我希望查询设计器中显示的数据将显示在此处。

显然我犯了一个菜鸟错误——有人有什么想法吗?

sql-server 报告服务

评论

0赞 Jimmy Smith 10/13/2023
已经一分钟了,但是当您将该字符串转换为小写字母时会发生什么?ReportQuery @CompanyId = Lower('59270CA0-8AC7-4D2C-BC9C-1088BC8186F2')
0赞 EffervescingElephant 10/13/2023
我收到语法错误 - “'59270CA0-8AC7-4D2C-BC9C-1088BC8186F2'附近的语法不正确。
0赞 Thom A 10/13/2023
如果未获取任何数据,则数据集不会返回任何行;我们看不到您的查询,但听起来像是您正在为没有与该参数匹配的行传递参数的值。
0赞 EffervescingElephant 10/13/2023
虽然听起来确实是这样,但它在查询设计器中有效。传入的参数在 SSMS 中也肯定有效。
0赞 Jimmy Smith 10/13/2023
当你不使用下限来做这件事时会发生什么? 出于某种原因,我记得它以前为我比较小写'59270ca0-8ac7-4d2c-bc9c-1088bc8186f2'

答: 暂无答案