我用的是sql数据库,我新建了一个表,表中有(房间号,病人,床位)我把房间号设为主键!房间号是int型,并在表中录入了一些数据
我在datawindows里做了条件设置
argumentname                 typet_fangjianhao        number
运行时,我想显示该表的所有信息
在open事件里写:
dw_1.settransobject(sqlca)
dw_1.retrieve()
在Click事件里写:
dw_1.retrieve(sle_1.text+"%")在运行时就不好用了,我该怎么改呢,请大家指点一下,谢谢了!

解决方案 »

  1.   

    dw_1.retrieve()说明没有设变量dw_1.retrieve(sle_1.text+"%") 说明设了变量
    能运行才怪BTW
    这是oracle板块啊,你问是的PB,数据库又是MSSQL,好像和oracle板块联系不大吧
      

  2.   

    哦,我是第一次在这里提问,所以没注意是在ORACLE板块内!
    那你看我这个问题该怎么该呢!
    我设的变量是number型的,我不会作了!
    dw_1.settransobject(sqlca)
    dw_1.retrieve(dec("%%%%"))
    要这么作吗,也不对呀,帮帮忙吧!
      

  3.   

    你传进去的参数是数字型的啊
    不用用%传进去的啊
    不知道你能保证sel_1.text不会出现非数字吗?
    如果能保证可以这样做dw里的变量设为string型,传进来要求要么是数字型的,要么是%(反正是你的房间号不会出现的)
    在dw里的sql语句这么写fangjianhao=decode(t_fangjianhao,'%',fangjianhao,to_number(t_fangjianhao))
    这样就能保证输入房间号的话,只查找该房间号的,输入'%'查找所有的房间
      

  4.   

    或者这样
    fangjianhao=decode(length(t_fangjianhao),1,fangjianhao,to_number(substr(t_fangjianhao,1,length(t_fangjianhao),-1)) 
    dw_1.retrieve(sle_1.text+"%") 
    这样,当sle_1.text为空是,传进去的就是'%',就会找所有的
    如果有内容的话,就会把%截掉
    不过一写要保证sle_1.text要么是空要么是数字