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

BIRT report dataset based on SP error

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

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

Cannot set preparedStatement parameter int value. SQL error #1:Parameter index out of range (1 > number of parameters, which is 0)

我不知道为什么会出现此错误。

我直接通过MySQL Workbench执行我的SP,像这样:

call getUserForCity(1);

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

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

重点来了,我会解释在 BIRT 中配置数据集的完整过程。

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

Data Explorer 上右键单击 Dataset 并选择 New Dataset。在对话框 window 中,选择适当的数据源,为数据集命名并选择从数据库获取数据的两个可能选项之一:QueryStored procedure .

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

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

哪里有'?' signs 与程序期望的参数数量有关。 在数据集配置 window 上选择 Parameters 选项来定义数据集接受的所有参数。定义参数的顺序必须与存储过程参数的顺序相同,否则您可能会得到错误或不合适的结果。

此外,如果您想用另一个参数的值填充您的数据集参数(通常通过另一个数据集填充),您可以在参数 window 中设置此选项,选择 [=23= 部分中的可用参数之一]链接到报告参数。