发新话题
打印

关于简表是否支持动态sql或者说支持sql的参数传入问题

关于简表是否支持动态sql或者说支持sql的参数传入问题

先感谢下前几天斑竹对于was部署的问题所提供的解决方案,非常感谢,您们的效率真的很高。
现在说下我们所碰的问题,在每次创建查询模板,即xml文件之前,在工具中需要填写相应的sql查询语句,但是如果在查询语句中需要传入参数就不知该如何处理,是否能与eclipse集成呢?如何可以集成,需要怎样的步骤,还麻烦斑竹能说的详细点,再此万分感谢了。

TOP

你在数据集节点定义时,写下面的SQL,
select * from 订单查询 where 年份=${iif(year,1996)}


则当指定year与不指定year的url,上述sql等价于:

// http://localhost:8189/jor/reportviewer?file=d:/test3.xml&as=dhtml
// year参数值没指定,使用val2值,上述sql等价于
select * from 订单查询 where 年份=1996      

// http://localhost:8189/jor/reportviewer?file=d:/test3.xml&as=dhtml&year=1995
// year参数值被指定为1995,上述sql等价于
select * from 订单查询 where 年份=1995  


Sql里面有一个宏,宏里有一个iif全局脚本函数,该函数方法的定义如下:

//如果val1不存在,则取val2值,如果存在,则取val1值
Object iif(val1,val2)

TOP

斑竹,按照上述您给的方案,为什么sql报错呢?
用了三个相对不同的数据类型的字段来试验过
都是不行,这些语句我都在数据库客户端上验证过,但是放在编辑器里按照您给的方法预览之后就报错
下面截图为您一一贴出来,图片是一一对应关系
附件: 您所在的用户组无法下载或查看附件

TOP

如果 proj_id是字符型字段   则
    proj_id='${has......}'

如果 proj_id是数值型字段, 则
    proj_id=${has....}

TOP

注意几点:
1.   ${} 里面的内容,必须是java兼容的表达式,has(misCode)?misCode:'C0826626'   是错误的,因为字符串不该用单引号,而应该用双引号,同理 '阜阳...工程' 也是错误的.
2.  ${} 里面的东西,会被替换成字符,如:
   proj_id = ${"C026626"}    解析成   proj_id=C026626     显然,这是错误的sql
      proj_id = '${"C026626"}'    解析成   proj_id='C026626'   正确
        
     proj_id = '${123}'     =>     proj_id='123'
     proj_id=${123}     =>    proj_id=123

TOP

发新话题