急 report 如何使用动态sql

amyzhangqian 2009-12-28 01:24:18
我用ireports 3.7.0 生成 .jasper 档 使用的是jdbc连接


现在我要写一个动态sql



1》参数classId有值 我就在sql中动态加了 and classId =参数

2》还有String 的 str = “limit 10”

sql 中写的是 select * from username $P!{str} 为什么sql 错误呢?

我是才接触这个东东,有很多不懂的地方 望大家多多指点

...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl3450341 2009-12-28
  • 打赏
  • 举报
回复
去下ireport中文指南 csdn下载区搜一搜
里面有 动态SQL 的示例
amyzhangqian 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 amyzhangqian 的回复:]
引用 3 楼 boboo_2000_0 的回复:
没有使用过动态sql,不过ireports一般只是作为模板制作工具,而真正的数据是通过程序传入模板的,不需要在ireports中用sql。


能详细 点吗

我现在就是不知道如何去得到数据

[/Quote]

或者说我不知道怎么把数据和ireports里面的摸板联系起来
amyzhangqian 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 boboo_2000_0 的回复:]
没有使用过动态sql,不过ireports一般只是作为模板制作工具,而真正的数据是通过程序传入模板的,不需要在ireports中用sql。
[/Quote]

能详细 点吗

我现在就是不知道如何去得到数据
道光2008 2009-12-28
  • 打赏
  • 举报
回复
如"select * from v_baseinfo_statbanjiereport where DEPT_NAME=$P{orgname} and END_SP_DAY=$P{etime}",点击"Save query to report"按钮保存。

这里要提醒大家注意的是,您可以直接把参数写入Where语句中,象这样"where DEPT_NAME='中国' and END_SP_DAY='2004-11-23'";但是从java程序或者jsp页面传过来的参数是中文字符的话,您就必须做编码转换或者用英文字符、数字来代替;还有像日期参数"2004-11-23",jasperreports好象解析不了,如果你把SQL语句改成" select * from v_baseinfo_statbanjiereport where DEPT_NAME='$P{orgname}' and END_SP_DAY='$P{etime}'",那么又会抛出异常,因为Jasperreport会先把SQL语句设置成预编译语句"select * from v_baseinfo_statbanjiereport where DEPT_NAME=?and END_SP_DAY=?",所以SQL语句中用到参数的时候,除了其特定的"$P{}"符号外,不能有别的标点符号,传进去的参数值也尽量不要带标点符号,所以日期格式得改成"20041123"。
boboo_2000_0 2009-12-28
  • 打赏
  • 举报
回复
没有使用过动态sql,不过ireports一般只是作为模板制作工具,而真正的数据是通过程序传入模板的,不需要在ireports中用sql。
amyzhangqian 2009-12-28
  • 打赏
  • 举报
回复
顶起
hfliyy 2009-12-28
  • 打赏
  • 举报
回复
关注一下,顺便接分。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧