Jdbc BIRT报表设计器空数据集脚本
我正在使用BIRT Report Designer 4.4.0,并且不断收到错误消息 org.eclipse.birt.report.engine.api.EngineeException:无法获取下一个数据行。org.eclipse.birt.report.data.oda.jdbc.jdbception:无法下移到结果集中的下一行。SQL错误1:结果集已关闭;org.firebirdsql.jdbc.FBSQLException:结果集已关闭 当BIRT试图从数据集中提取一行时,我知道该行是空的。我发现这是BIRT的一个常见问题,并试图阻止数据集上带有beforeOpen脚本的空数据集,我可能在其中出错,因为它不起作用。 我创建了一个vars[item],并想计算调用OnFetch的频率 开放前: 变量[项目]=0; OnFetch: 变量[项目]+; 关闭前: 如果变量[项目]==0 { 行[0]=0; } 这不起作用,因为我想没有行[0] 当我将数据集的queryText编辑为 从kontrolle中选择0 这肯定会产生一个数据集,我仍然得到同样的无法获取下一个数据行错误 设计大致如下: 这是有问题的数据集 第二个表仅通过一个参数绑定到第一个表,但是第三个表与第二个表有两个参数绑定 希望解释足够好,有人能提供解决方案。如前所述,在连接属性(如JDBC url)中添加defaultResultSetTholdable=true。这指示Jaybird使用可保留的结果集创建连接,默认情况下相当于在代码中调用connection.setHoldabilityResultSet.HOLD\u CURSORS\u OVER\u COMMIT 我真的不了解伯特,所以这只不过是对原因的一个有根据的猜测: 它可以在不显式询问或检查结果集的情况下期望可保持的结果集,并且在Jaybird中打开结果集后提交默认情况下,结果集在提交时关闭 BIRT可以使用autoCommit=true作为默认值,但不希望在同一连接上执行另一条语句时关闭结果集。这会导致关闭像结果集这样的资源,以及JDBC标准指定的提交;在某些方面,这是第1点的特化。Jdbc BIRT报表设计器空数据集脚本,jdbc,firebird,birt,report-designer,jaybird,Jdbc,Firebird,Birt,Report Designer,Jaybird,我正在使用BIRT Report Designer 4.4.0,并且不断收到错误消息 org.eclipse.birt.report.engine.api.EngineeException:无法获取下一个数据行。org.eclipse.birt.report.data.oda.jdbc.jdbception:无法下移到结果集中的下一行。SQL错误1:结果集已关闭;org.firebirdsql.jdbc.FBSQLException:结果集已关闭 当BIRT试图从数据集中提取一行时,我知道该行是
您使用的是哪个Jaybird版本?我使用的是Jaybird 2.2.7如果您将DefaultResultSetTholdable=true添加到连接属性(如JDBC url中),会发生什么情况?我不知道我是否应该感到沮丧或过于高兴,因为仅仅添加它就成功了!非常感谢!不过,我删除了脚本编写的东西。好吧,我维护了Jaybird,不幸的是,很多应用程序在没有明确要求的情况下都希望得到可保存的结果集。因此,这通常会奏效。