数据窗口的参数问题

qxy007 2010-01-10 01:20:58
ORACLE中一表,有字段dept_code,a,b,c
做了一个数据窗口,按科室检索,SQL如下
select dept_code,a,b,c where dept_code = :idept
其中idept为参数,这样当Retrieve('2201')的时候可以检索到科室2201的资料
但是,我想此数据窗口也能列出全部科室的资料,可有办法实现?
要求不在程序中修改此数据窗口的SQL语句。
印象中在某位高人的博客中见过解决方法,但记不得了,他的数据窗口SQL语句如何写忘了,
Retrieve()带参数则检索出某科室,Retrieve()不带参数则检索出所有。。。。。。
...全文
92 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldx_king 2010-07-14
  • 打赏
  • 举报
回复
adjfkasdfjklsdjfklasdjfklsdj
jlwei888 2010-01-10
  • 打赏
  • 举报
回复
2楼第二个方法好!
eviler 2010-01-10
  • 打赏
  • 举报
回复
俺又招

idept 应该是你定义的一个参数了 ,那么再定义一个参数 iflag

sql语句改写成

select dept_code,a,b,c where (dept_code = :idept Or 1= :iflag)

这样要查询具体部门的时候 iflag 传入 0 , 要查询全部的时候 idept 随便传一个字符串 ,iflag 传入 1 ,

收分
wag_enu 2010-01-10
  • 打赏
  • 举报
回复
这几天刚才在做类似的,不过我的是SQL Server ,在通配符上有区别。
在建DW的时候这么做:
select dept_code,a,b,c where dept_code like :idept

然后在retrieve 的时候就像PB8 哥说的第二点那样引用。
qxy007 2010-01-10
  • 打赏
  • 举报
回复
非常感谢,按你们的办法都能解决这个问题。我采用2楼pb8的办法,四楼eviler的办法也很不错。。
pb8 2010-01-10
  • 打赏
  • 举报
回复
1、方法一:常用的方法,动态设置setsqlselect或table.select,但楼主不想用这个;
2、方法二:建议使用like,如果想查询所有就用retrieve('%'),否则就是直接的那个ID,比如retrieve('2201');
3、补充:在不改变数据窗口的语法情况下,如果数据窗口对象在定义的时候带了参数,不管参数又无引用,retrieve时如果不带参数都会失败的
qin_phoenix 2010-01-10
  • 打赏
  • 举报
回复
自己写一个实现retrieve的函数,数据窗口不写检索条件.条件在函数中动态的加入.不知是否能满足你的要求.

611

社区成员

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

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