Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iReport调用MSSQL存储过程_Sql_Sql Server_Jasper Reports_Ireport - Fatal编程技术网

从iReport调用MSSQL存储过程

从iReport调用MSSQL存储过程,sql,sql-server,jasper-reports,ireport,Sql,Sql Server,Jasper Reports,Ireport,我想从iReport调用MSSQL服务器中的存储过程 查询: SET QUOTED_IDENTIFIER OFF SET DATEFORMAT mdy Exec SP_SAMPLE '12-jan-2008', '12-jul-2011', "$P!{Param1}", "$P!{Param2}", 1, "$P!{Param3}" SET QUOTED_IDENTIFIER ON Where, Param1 = 'A436F3A9-6A8B-40C4-B38E-56

我想从iReport调用MSSQL服务器中的存储过程

查询:

SET QUOTED_IDENTIFIER OFF 
SET DATEFORMAT mdy 

Exec SP_SAMPLE '12-jan-2008', '12-jul-2011', 
"$P!{Param1}", 
"$P!{Param2}", 
1, 
"$P!{Param3}" 

SET QUOTED_IDENTIFIER ON
Where, 
    Param1 = 'A436F3A9-6A8B-40C4-B38E-567B05522449',
        '4DD40BC2-3390-4B1B-8841-        483A8FDAB2FD',
        'B95E8F04-6EE7-4BC6-BDD0-F95C4AFDAC0B',
        'AE757961-0E25-41B8-A382-    7600DDA0ABC7',
        '90B9CC0C-6090-4CEF-8BC9-9C8EA3C0F63C',
        '1E191B19-13D0-4CE2-B1EC-    3CFF9316887F',
        'A9EE7AE9-435C-4164-96F5-3DB20A6321BE',
        'DCD6D045-8B42-4B83-8C97-21EE9DFF644C'
    Param2 = '4E6E8464-F08A-4BB8-950F-38908E4E7B30',
        '76EBA40E-F898-4541-9208-8A6B3A35E082',
        '7C64DA92-C168-4A74-8955-F1974258AD12',
        '2E6DDC25-E037-4842-9E7F-2B9586561744'
    Param3 = 3EC43FB7-F258-4441-8188-A55E7BD40ADE 
请注意,存储过程
param1
param2
param3
在sqlserver中是文本数据类型。而在iReport中,我把它们收集起来

有谁能告诉我如何在iReport中用双引号生成上述查询


另外,在运行iReport时,是否有任何方法显示带有填充参数值的查询?

Jasper Reports使用两种类型的参数进行操作:$p{name_parameter}和$p!{name_parameter}。 你用的是$P!查询中的参数,该参数使您能够完全控制生成查询


示例:

<parameter name="strParam1" class="java.lang.String"/>
<parameter name="strParam2" class="java.lang.String"/>
<parameter name="strParam3" class="java.lang.String"/>
<queryString><![CDATA[SELECT atr1 FROM mytable WHERE stratr1=$P{strParam1} AND stratr2=$P!{strParam2} AND stratr3=$P!{strParam3}]]></queryString>
查询结果将是:

SELECT atr1 FROM mytable WHERE stratr1='string1' AND stratr2='string2' AND stratr3=string3


另外,是否有任何方法显示带有填充参数的查询 运行iReport时的值

在IReport 4.1中,您可以在输出控制台(IReport输出窗口)中查看结果查询


您可以设置log4j.properties以查看自定义java应用程序的结果查询。

您能告诉我如何获得如下结果查询吗?我将通过集合参数传递参数['abc'、'def'、'ghi']?选择“'abc'、'def'、'ghi'”另外,请您解释一下,当使用独立的iReport应用程序运行时,如何显示带有填充参数值的查询?@Srinivasan_uuu?您的表达式将是:Srinivasan_uuuu。在iReport 4.1中,您可以在输出控制台(iReport输出窗口)中查看结果查询在iReport输出窗口中找不到填充有参数值的结果查询。另外,SELECT“$P!{strParam}”不起作用,它会显示一个sqlexception,声明字符串的最大长度为128。你能帮我一下吗?
SELECT atr1 FROM mytable WHERE stratr1='string1' AND stratr2='string2' AND stratr3=string3