【问题标题】:SSRS truncating parameterSSRS 截断参数
【发布时间】:2015-10-02 22:05:47
【问题描述】:

我有一个使用存储过程填充参数的 SSRS 报告。此查询按预期工作。当该参数用于运行报表时,该参数将被截断。我选择值 ABCD,但报告返回 ABC 的值。我传递参数的存储过程在 SSMS 中完美运行并返回 ABCD 数据。当我在查询设计器中测试查询或运行报表时,我会得到 ABC 数据。如何让 SSRS 传入整个参数?

【问题讨论】:

  • 字符串参数是否有指定长度?是否由于数据类型转换而被截断(例如varchar(3),导致一个字符被截断)?
  • 存储过程是一个 varchar(6)。如果SSRS中有设置长度的地方,那我就不熟悉了。
  • 显示参数的文本框中是否有表达式,例如substring()或left()?
  • 您过去是否曾经将填充参数的查询中的 nvarchar 设置为长度为 3? RDL 文件可能出于某种原因保留了旧值,或者服务器从未随着长度的变化而更新。
  • 您是否检查过以确保服务器上的数据源与 BIDS 中的数据源相同?如果您进行了更改,它可能不会更新,因为 OverwriteDatasets 默认值为 false。您是否删除了报告文件夹中的 .data 文件? SSRS 保留本地数据以提供帮助。

标签: sql-server reporting-services parameters ssrs-2008-r2


【解决方案1】:

参数是没有设定长度的字符串。没有什么可以截断你的价值观。您是否检查过这些值以确保 Value 和 Label 相同?

label 是您看到的 (ABCD),而 value 是参数中实际传递的内容。我不知道如果它在您的本地机器上运行会不会是您的问题。

如果这不起作用,您可以尝试删除参数并重新创建它 - 它应该不起作用,但以前有。

【讨论】:

  • 他说他正在从查询中获取值。我认为这不适用。
  • 我正在使用查询并且查询返回正确的值。我还尝试删除并重新创建参数而不改变结果。我还更改了参数并将 ABCD 硬编码为唯一值。它仍然返回 ABC 数据。
  • 您是否检查过参数以确保属性中的 LabelValue 字段设置为使用相同的字段?一个字段似乎不太可能显示 ABCD 但值中包含 ABC 但...
【解决方案2】:

我以前也遇到过类似的情况,尝试进入你拥有的存储过程并为你的参数结果创建一个输出表,以便输入它是恒定的,即

declare @mytable table (returnval varchar(50))

确保在表中为您将返回的查询结果创建一列,并确保将数据类型设置为 varchar,其速度足以容纳任何可能的返回选择值。注意:不要使用 nvarchar,因为我发现这有时仍然会截断值并切断内容。

您将希望以与最初执行的 proc 相同的方式执行查询,但这次将值插入临时表,即

insert into @mytable

select * from table.name

这会将所有值插入到您的临时表中,并且该表现在为所有不会更改的返回值设置了值长度,您可以尝试通过使用设置长度字段对原始查询以相同的方式执行此操作对于表格,问题在于存在许多可以改变这一点的因素,这里有几个例子。

    1234563结果中的最佳数据类型,但是当它将数据发送到 ssrs 时,除非设置,否则它可以将其解释为另一个长度值。
  1. 您可能在返回字段中使用了多种数据类型,并且 ssrs 对使用哪种数据类型感到困惑,即整数值、varchar、文本等。这种强化了上述数据类型。

    1234563

此外,请检查后端报告的配置设置,并确保从查询中设置了应有的返回值,但还要确保没有为返回数据类型指定设置,这如果在报告设计时您首先创建报告并使用静态参数进行测试以首先创建报告,然后您稍后指定该参数是我也发生过的查询结果集中的列表,则有时会发生这种情况。

最后,每次对某些内容进行更改时,一个好的做法是确保每次都生成报告,并且不显示报告的缓存版本,这使得每次报告看起来都没有任何变化。执行此操作的方法是每次关闭报告或在运行报告时也尝试确保在运行报告后点击页面上的重新加载以强制重新加载以确保每次都能看到差异。

我认为,如果您执行所有这些操作,您将发现问题或消除问题,或两者兼而有之,就像我多次遇到的那样。

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多