基于SP错误的BIRT报告数据集

时间:2016-01-28 14:23:15

标签: eclipse dataset report birt

我已经安装了Eclipse IDE并创建了BIRT项目。我已成功为MySQL连接器添加了jdbc并创建了一个成功通过的数据源。

当我创建依赖存储过程的数据集时,我收到一条错误,指出:

  

无法设置preparedStatement参数的int值。 SQL错误#1:参数索引超出范围(1>参数个数,为0)

我不知道为什么会收到此错误。

我通过My​​SQL Workbench直接执行我的SP:

call getUserForCity(1);

我得到了一些结果,大约100行。我已尝试使用硬编码值和单独的参数值,在这两种情况下我都有相同的异常。

2 个答案:

答案 0 :(得分:1)

以下是捕获,我还将解释在BIRT中配置数据集的完整过程。

成功创建MySQL数据库的数据源后,下一步是创建一个或多个依赖MySQL存储过程的数据集。

数据资源管理器上右键单击数据集,然后选择新数据集。在对话框窗口中,选择适当的数据源,为数据集指定名称,并从数据库中选择两种可能的选项之一:查询存储过程

无论您选择哪种选项,配置参数的方式都是相同的。在查询编辑器中,编写用于调用存储过程的代码,如下所示:

call procedure_name(?, ?, ?, ...);

其中'?'符号与程序期望的参数数量有关。 在数据集配置窗口中,选择参数选项以定义数据集接受的所有参数。已定义参数的顺序必须与存储过程参数的顺序相同,否则可能会出现错误或不合适的结果。

另外,如果要用另一个参数的值填充数据集参数(通常通过另一个数据集填充),可以在参数窗口中设置此选项,选择链接到报告参数部分中的可用参数之一>

答案 1 :(得分:0)

您收到错误是因为存储过程的预期参数数量为0,而不是在没有参数的情况下调用,而是传递参数。您需要修改存储过程以期望和处理参数,或者在没有参数的情况下调用它。