还是没找到错误,把代码和结果都写出来,请高手分析一下,(很简单的代码)

funnu 2003-10-16 02:12:14
做了一个dw,两张表一共选了5列,页面上有搜索按钮,代码如下
int n ,i
string zch,qymc
string dwrq,nbxh

string dqsj
dqsj=string(GDT_SYSTIME,'yyyy-mm-dd')//GDT_SYSTIME为全局变量,取系统时间
string ls_sql=' '
ls_sql=ls_sql+' where 1=1 '
if sle_zch.text<>''and not isnull(sle_zch.text) then
ls_sql=ls_sql+" and zch like '%"+trim(sle_zch.text)+"%'"
end if
if sle_qymc.text<>'' and not isnull(sle_qymc.text) then
ls_sql=ls_sql+" AND qymc like '%"+trim(sle_qymc.text)+"%'"
end if


ls_sql=ls_sql+' and qy_qydj_zs.nbxh=qy_wzczqk_zs.nbxh'
ls_sql=ls_sql+' and qy_wzczqk_zs.zfyj <> qy_wzczqk_zs.zfsj'
ls_sql=ls_sql+' and qy_wzczqk_zs.wfyj <> qy_wzczqk_zs.wfsj'

ls_sql=ls_sql+" and to_char(qy_wzczqk_zs.qxycz,'yyyy-mm-dd') >='"+dqsj+"'"
f_mess(ls_sql)

tab_1.tabpage_1.dw_1.setsqlselect(ls_sql)
tab_1.tabpage_1.dw_1.Retrieve()
跟踪ls_sql得到的结果是
where 1=1 and zch like '%111%' and qy_qydj_zs.nbxh=qy_wzczqk_zs.nbxh and qy_wzczqk_zs.zfyj <> qy_wzczqk_zs.zfsj and qy_wzczqk_zs.wfyj <> qy_wzczqk_zs.wfsj and to_char(qy_wzczqk_zs.qxycz,'yyyy-mm-dd') >='2003-10-16'
但是系统提示select error:无效sql
...全文
32 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-10-16
  • 打赏
  • 举报
回复
恭喜,自力更生。
bomber2001 2003-10-16
  • 打赏
  • 举报
回复
up,
funnu 2003-10-16
  • 打赏
  • 举报
回复
谢谢楼上的,问题已经解决,我重新定义了一个视图,问题解决了,
qqjj7758 2003-10-16
  • 打赏
  • 举报
回复
同意楼上的 说具体点
longdrang 2003-10-16
  • 打赏
  • 举报
回复
有時你從datawindow取出來的sql語句上會有一些奇怪的符號,而你新加的一部分又沒有按昭它的格式.建議重新建此datawindow.
lmby 2003-10-16
  • 打赏
  • 举报
回复
string ls_sql=' '
ls_sql=ls_sql+' where 1=1 '
???

应该是:
ls_sql = dw_name.getsqlselect()

ls_sql += ' where .........'
chrisfy 2003-10-16
  • 打赏
  • 举报
回复
你得ls_sql内容怎末只有where子句,select哪去了,setsqlselect()函数得是完整的SQL语句
qiyousyc 2003-10-16
  • 打赏
  • 举报
回复
setsqlselect支持两个表单组成的数据窗体。但会修改数据窗口的updateenab属性。
1、是不是在setsqlselect前,数据窗口未设置事物。
2、是不是数据窗口原先的数据对象不存在或列的数目与类型与你动态生成的sql语法不匹配。
funnu 2003-10-16
  • 打赏
  • 举报
回复
该语句补充where前面的语句,最后补充;执行没有问题,我一直感觉setsqlselect函数错了,谁见到过
funnu 2003-10-16
  • 打赏
  • 举报
回复
我想知道setsqlselect函数是否支持两个表单组成的数据窗体。
wantsong 2003-10-16
  • 打赏
  • 举报
回复
这样吧,你把条件一条一条加上去,这样就知道是那个and错了,再修改这个and
qiyousyc 2003-10-16
  • 打赏
  • 举报
回复
将zch like '%111%' 更改为instr(zch,'111')试试
funnu 2003-10-16
  • 打赏
  • 举报
回复
不是那得错,我屏蔽该语句错误仍然存在
rogery 2003-10-16
  • 打赏
  • 举报
回复
注意data type的匹配。
takeiteasy 2003-10-16
  • 打赏
  • 举报
回复
根据你用的数据库类型,调整to_Char函数

to_char(qy_wzczqk_zs.qxycz,'yyyy-mm-dd')应该改为:

to_char(qy_wzczqk_zs.qxycz,'yyyy-mm-dd hh24:mi:ss')

1,077

社区成员

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

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