关于查询的问题,请大家都来看看

qqzhouyf 2001-12-13 07:12:28
w_main的cb_find:
open (w_find)
w_find的cb_ok:
ls_sql=w_main.dw_1.getsqlselect()
if cbx_1.checked then
ls_newsql="where person_name ='"+sle_1.text+"'"
ls_sql=ls_sql+ls_newsql
w_main.dw_1.setsqlselect(ls_sql)
close (parent)
end if
上面这段语句,第一次执行时能够正常查询,但如果不关闭W_MAIN窗口,再执行cb_find,则不能正常执行查询。原因是第二次执行时getsqlselect()过得的SQL语句,包括了第一次SQL语句中的“WHERE”,请问如何实现多次查询getsqlselect()不包括原来的SQL,即"SELECT * FROM person"??????????????
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
konrong 2001-12-13
  • 打赏
  • 举报
回复
不对了,怪我没有看清,应该这样:
lsq_oldsql=w_main.dw_1.tag
ls_sql=ls_oldsql+ls_newsql
w_main.dw_1.setsqlselect(ls_sql)
w_main.dw_1.Retrieve()//得到结果了
w_main.dw_1.setsqlselect(ls_oldsql)//SQL恢复
konrong 2001-12-13
  • 打赏
  • 举报
回复
不用加if cbx_1.checked then判断,这样好了
ls_newsql="where person_name ='"+sle_1.text+"'"
ls_sql=ls_sql+ls_newsql
w_main.dw_1.setsqlselect(ls_sql)
w_main.dw_1.Retrieve()//得到结果了
w_main.dw_1.setsqlselect(ls_sql)//SQL恢复
下次用时就不会加上了.
liaoshangfa 2001-12-13
  • 打赏
  • 举报
回复
执行查询功能后(不管有无结果),应及时将数据窗口的语法还原,这样方可进行下一次查询。
leaf_cq 2001-12-13
  • 打赏
  • 举报
回复
在w_main的open事件中加入:
dw_1.tag = dw_1.getsqlselect()
然后w_find的cb_ok改为:
ls_sql=w_main.dw_1.tag
if cbx_1.checked then
ls_newsql="where person_name ='"+sle_1.text+"'"
ls_sql=ls_sql+ls_newsql
w_main.dw_1.setsqlselect(ls_sql)
close (parent)
end if

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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