2

我在 Jaspersoft Studio (JSS) 中运行 sql server 过程,但查询对话框只显示一个字段。

它在 JSS 中的外观:

Jasper Studio 上的程序 - 仅显示一个字段。

在 SQL SERVER Management Studio 中,它可以正常工作。该过程返回十多个字段...

SQL SERVER Management Studio 上的过程

有人见过类似的案例吗?可能会发生什么?

我写了一个java代码来检查,并通过jdbc java应用程序,正常显示所有字段:

 Connection conn = VAGASConnectionFactory.getNewConnectionSQLDRIVER(VAGASConnectionFactory.AMBIENTE.DESENV);
    CallableStatement cs = conn.prepareCall("{call pr_cria_tabela_relatorio_parametrizado(90918)}");
    ResultSet rs = cs.executeQuery();
    while(rs.next()) {
        System.out.println(rs.getString(1) + "," + rs.getString(2) + "," + rs.getString(3) + "," + rs.getString(4));
    }

此代码的结果正确运行:

杰西卡阿尔巴,28/04/1981,35,康达多

金凯瑞,1962 年 1 月 17 日,54 岁,戈亚纳

但是在 Jasper Studio 中,只显示一个字段.... :-/

单击“读取字段”时的 Jasper Studio 日志:

Start ClassPath Mapping
Mapping: Archive: file:/home/diego.queres/.eclipse/1695504528/configuration/org.eclipse.osgi/bundles/55/1/.cp/lib/jasperreports-6.1.1.jar
Mapping: Archive: file:/home/diego.queres/.eclipse/1695504528/configuration/org.eclipse.osgi/bundles/55/1/.cp/lib/jasperreports-chart-themes-6.1.1.jar
Mapping: Archive: file:/home/diego.queres/.eclipse/1695504528/configuration/org.eclipse.osgi/bundles/55/1/.cp/lib/jasperreports-fonts-6.1.1.jar
Mapping: Archive: file:/home/diego.queres/.eclipse/1695504528/configuration/org.eclipse.osgi/bundles/55/1/.cp/lib/jasperreports-functions-6.1.1.jar
Mapping: Archive: file:/home/diego.queres/.eclipse/1695504528/configuration/org.eclipse.osgi/bundles/40/1/.cp/lib/js-common.jar
Mapping: Archive: file:/home/diego.queres/.eclipse/1695504528/configuration/org.eclipse.osgi/bundles/40/1/.cp/lib/js-extra-classes.jar
End ClassPath Mapping

我正在使用 Jasper Studio 6.1.1。我尝试使用 Jasper Studio 6.3.0,也没有成功。

4

1 回答 1

0

经过多次尝试,我发现查询编辑器仅限于读取具有复杂存储过程(如我的)的字段。由于我的过程使用游标并在字符串中动态进行 sql 查询,因此查询编辑器阻碍了读取过程方案。

我决定执行以下操作:将查询 SQL 打印到过程输出(print @sql)。然后我剪切并粘贴在查询编辑器窗口中运行的查询(在过程输出上)(而不是过程调用,“exec 过程 ....”)。因此查询编辑器可以读取查询的字段。查询编辑器读取字段后,我删除查询 SQL 并再次插入过程调用 "exec procedure ...."

现在它起作用了:-)

于 2016-08-25T17:33:03.590 回答