【问题标题】:MySQL + SSRS | Stored Procedure only returns one single rowMySQL + SSRS |存储过程只返回一行
【发布时间】:2020-02-10 01:16:22
【问题描述】:

我正在编写几份通过 ODBC 适配器用 MySQL 编写的 SSRS 报告。出于某种原因,存储过程仅返回单行数据,而不是预期的数据集。

以下是在 SQL 编辑器上运行时的相同存储过程:

下面是 SSRS 尝试运行存储过程时的执行结果(在查询设计器和报表查看器上):

据我所知,我也正确设置了参数:

【问题讨论】:

  • 您使用的是什么版本的 OBDC 驱动程序?
  • @SQLBobScot 我有 8.00.17.00 用于 x64 和 x86 上的 MySQL 8.0 ANSI/Unicode
  • 当我用谷歌搜索时,有一篇关于旧版本(我认为是 v5)的文章,由于错误,返回的结果集只有一行。
  • 这仅发生在存储过程中吗?或者,如果您使用 select 语句,您是否会看到同样的问题,即使用 select 语句时您希望有很多行但只返回 1 行?
  • select 语句对我来说很好用。它只发生在存储过程中,我也碰到过一篇文章,讲述了 v5 周围的那个 bug,但它没有提到后续版本仍然受到影响。

标签: mysql reporting-services odbc


【解决方案1】:

所以我无法找到确切的答案来解释为什么在 SSRS 上通过 ODBC 与 MySQL 发生这种情况。我能找到的是一种解决方法:

通过将命令作为Expression 执行,而不是通过Query Editor 作为原始查询:

现在唯一需要注意的是the DataSet Fields wouldn't be automatically generated, and that you have to plot them all manually。一个好的解决方法是首先运行一个只有列名的空白/空查询(即:SELECT NULL 'column_name_1', NULL 'column_name_2'),然后将查询源更改为 Expression。使用表达式的好处是您只需要了解它的工作原理并减少与 ODBC '?' 的混淆。参数。

干杯!

【讨论】:

    猜你喜欢
    • 2012-04-16
    • 2016-04-14
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    相关资源
    最近更新 更多