【发布时间】:2015-08-25 07:50:35
【问题描述】:
我正在使用 BIRT Report Designer 4.4.0,但一直收到错误消息
org.eclipse.birt.report.engine.api.EngineException:无法获取下一个数据行。 org.eclipse.birt.report.data.oda.jdbc.JDBCException:无法下移到结果集中的下一行。 SQL错误#1:结果集已关闭; org.firebirdsql.jdbc.FBSQLException: 结果集已关闭
当 BIRT 试图从我知道是空的数据集中获取一行时。我发现这是 BIRT 的一个常见问题,并试图在数据集上使用 beforeOpen 脚本来防止空数据集,我可能做错了,因为它不起作用。 我创建了一个 vars["item"] 并想计算调用 OnFetch 的频率。
打开前:
vars["item"] = 0;
OnFetch:
vars["item"]++;
关闭前:
if (vars["item"] == 0)
{
row[0] = "0";
}
这不起作用,因为我猜没有行[0]。
当我将数据集的 queryText 编辑为只是
SELECT "0" from kontrolle
这肯定会产生一个数据集,但我仍然遇到同样的“无法获取下一个数据行”错误!
设计大致是这样的:
<table>
<table>
<table> here is the dataset in question
</table>
</table>
</table>
第二个表只通过一个参数绑定到第一个表,但是第三个表有两个参数绑定到第二个。
希望解释足够好,有人可以提供解决方案。
【问题讨论】:
-
您使用的是哪个 Jaybird 版本?
-
我使用的是 Jaybird 2.2.7
-
如果将
defaultResultSetHoldable=true添加到连接属性(例如在JDBC url 中)会发生什么? -
我不知道我是应该感到沮丧还是过分高兴,只是添加这个就可以了!非常感谢!不过我删除了脚本。
-
好吧,我维护 Jaybird,不幸的是,看起来很多应用程序都期望可保存的结果集,而没有明确要求它们。所以这通常可以解决问题。
标签: jdbc firebird birt report-designer jaybird