过滤问题,急!!!在线等待!!!

lyrzhlgq 2004-04-20 11:41:26
str_sql="select Cbianhao from 人物 where 性别=‘男’”
str_oldsql="#1 in" + str_sql
dw_result.setfilter(str_oldsql)
dw_result.filter()

我上面这样写有错误,改怎么解决这个问题呢?
其中str_sql 语句中的查询表和字段及条件是不确定的?
...全文
47 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyrzhlgq 2004-04-20
  • 打赏
  • 举报
回复
那我该怎么读到该sql语句执行后得到的多个值呢?
qianfl 2004-04-20
  • 打赏
  • 举报
回复
过滤是根据数据窗口中的列来做的,不是用SQL语句
wei26981 2004-04-20
  • 打赏
  • 举报
回复
是不是忘了使该控件有效啊?
ACTIVE:=TRUE;
a2000 2004-04-20
  • 打赏
  • 举报
回复
过滤中不能用SQL语句,
thelazyman 2004-04-20
  • 打赏
  • 举报
回复
不能这样的!
dw要对应于某个表!
sun1976 2004-04-20
  • 打赏
  • 举报
回复
还有一种不用setfilter()而是动态改变数据窗口sql的方法
dw_result.dataobject='d_xxxx'//你的dw_result的数据窗口对象
ls_oldsql=lower(dw_result.GetSQLSelect())//得到原来的sql,转换成小写
str_sql="select Cbianhao from 人物 where 性别=‘男’”
if pos(ls_oldsql,'where') then
ls_newsql=ls_oldsql+" and #1 in (" + str_sql+")"
else
ls_newsql=ls_oldsql++" where #1 in (" + str_sql+")"
end if
dw_result.setsqlselect(ls_newsql)
dw_result.settransobject(sqlca)//重新设置数据窗口对象或者重新设置sql后必须重设是无对象
dw_result.retrieve()


sun1976 2004-04-20
  • 打赏
  • 举报
回复
用你的select Cbianhao from 人物 where 性别=‘男’作一个数据窗口dw_bianhao
dw_2.settransobject(sqlca)//设置事务对象
ll_rowcount=dw_2.retrieve()//得到编号列表
ls_filter='1=0 '//应为用or连接各个条件,在没有编号的时候应该条件不成立。这样的目的是不用判断前面是否应经有表达式,可以直接加or ****,不然还要判断第一个前面什么都不佳,后面的才加or
for ll_row=1 to ll_rowcount
ls_bh=dw_2.getitemstring(ll_row,'cbianhao')
ls_filter=ls_filter+ " or 你的dw_result中编号那一列的列名='"+ls_bh+"' "
next
messagebox('',ls_filter) //让你看看拼出来的字符串的内容,真正用程序前把这句注释掉
dw_result.setfilter(ls_filter)
dw_result.filter()

611

社区成员

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

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