MySQL + SSRS(SQL 服务器报表生成器)Dataset/Query 参数不起作用
MySQL + SSRS (SQL Server Report Builder) Dataset/Query Parameters not working
我目前正在使用 SQL Server Report Builder 2012 并通过 ODBC 连接器连接到我的 MySQL 数据库,就基本报告而言,一切正常。
但是,我似乎无法使 Query/Dataset 参数按照预期的方式工作。我的查询有多个参数,如下所示(显然 table 和列名称已删除):
现在的问题是,如果我让参数保持原样(@OfMonth、@OfDay、@OfYear)- SSRS 似乎没有绑定从报表生成器的参数对象传递的实际值,我今天对此很有信心我已经正确关联。甚至 preview/query 设计师也不行。
但是,如果我将所有 @XXXX 参数更改为简单的 ?
占位符,它就会神奇地起作用。这对具有多个参数的查询特别构成问题。
这是我正在进行的工作的报表生成器屏幕截图:
我在 Parameter
节点下定义 3 参数对象没有问题。但是,如果我尝试将它们绑定在具有特定 @XXXXX
占位符的数据集属性下,它不起作用,并且报告无法生成数据。但是,如果我将所有 @XXXXX
替换为 ?
(所有这些都只是 ?
,因此重复),参数将被传递并加载报告。
对于 ODBC 连接,您确实需要使用 ?而不是命名变量。
dba.stackexchange | Pass Parameter - SSRS to MySQL
数据集属性上的参数名称字段应自动填充 Parameter1、Parameter2...以匹配您的查询,但似乎并不总是有效。您可以尝试手动添加它们。由于它在没有你的名字的情况下工作,我认为这个名字实际上并不重要。
当我多次使用一个参数时,我会在查询中声明一个新参数并重新使用新参数,正如@Bacon 提到的:
DECLARE @OfMonth INT
SET @OfMonth = ?
这样您只需在查询开始时匹配一次。
使用?作为脚本中的变量,然后记住“?”的特定顺序然后使用特定的 order/arrangement of '?'参数,在添加 MySQL 脚本后在参数选项卡中设置它们。
例如。脚本.
Select * 来自表 1
其中 column1 = ?
和 column2 = ?
当您将其粘贴到数据集时,每个“?”将映射到参数选项卡中。
?参数1
?参数2
将此更改为您自己的参数,然后就可以了。
我目前正在使用 SQL Server Report Builder 2012 并通过 ODBC 连接器连接到我的 MySQL 数据库,就基本报告而言,一切正常。
但是,我似乎无法使 Query/Dataset 参数按照预期的方式工作。我的查询有多个参数,如下所示(显然 table 和列名称已删除):
现在的问题是,如果我让参数保持原样(@OfMonth、@OfDay、@OfYear)- SSRS 似乎没有绑定从报表生成器的参数对象传递的实际值,我今天对此很有信心我已经正确关联。甚至 preview/query 设计师也不行。
但是,如果我将所有 @XXXX 参数更改为简单的 ?
占位符,它就会神奇地起作用。这对具有多个参数的查询特别构成问题。
这是我正在进行的工作的报表生成器屏幕截图:
我在 Parameter
节点下定义 3 参数对象没有问题。但是,如果我尝试将它们绑定在具有特定 @XXXXX
占位符的数据集属性下,它不起作用,并且报告无法生成数据。但是,如果我将所有 @XXXXX
替换为 ?
(所有这些都只是 ?
,因此重复),参数将被传递并加载报告。
对于 ODBC 连接,您确实需要使用 ?而不是命名变量。
dba.stackexchange | Pass Parameter - SSRS to MySQL
数据集属性上的参数名称字段应自动填充 Parameter1、Parameter2...以匹配您的查询,但似乎并不总是有效。您可以尝试手动添加它们。由于它在没有你的名字的情况下工作,我认为这个名字实际上并不重要。
当我多次使用一个参数时,我会在查询中声明一个新参数并重新使用新参数,正如@Bacon 提到的:
DECLARE @OfMonth INT
SET @OfMonth = ?
这样您只需在查询开始时匹配一次。
使用?作为脚本中的变量,然后记住“?”的特定顺序然后使用特定的 order/arrangement of '?'参数,在添加 MySQL 脚本后在参数选项卡中设置它们。
例如。脚本.
Select * 来自表 1 其中 column1 = ? 和 column2 = ?
当您将其粘贴到数据集时,每个“?”将映射到参数选项卡中。 ?参数1 ?参数2
将此更改为您自己的参数,然后就可以了。