导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

为什么调试时候老提示语法错误呢

nicholas_yy 2003-12-12 04:31:01
string ls_sql
string ls_jfnd,ls_xm
ls_jfnd=trim(sle_1.text)
ls_xm=trim(sle_2.text)
if ls_jfnd<>"" and not isnull(ls_jfnd) then
ls_sql="c_yymx.bh='"+ls_jfnd+"'"
end if

if ls_xm<>"" and not isnull(ls_xm) then
if ls_sql="" or isnull(ls_sql) then
ls_sql="c_yymx.ypbh='"+ls_xm+"'"
else
ls_sql=ls_sql+" and c_yymx.ypbh='"+ls_xm+"'"
end if
end if
end if

dw_1.settransobject(sqlca)
IF dw_1.SetSQLSelect(ls_sql) = 1 THEN
dw_1.settransobject(sqlca)
dw_1.Filter()
ELSE
messagebox("系统提示","检索数据错误!")


我这程序有什么错误,怎么老提示语法错误呢
...全文
13 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sinkiangscorpio 2003-12-13
dw_1.settransobject(sqlca)
IF dw_1.SetSQLSelect(ls_sql) = 1 THEN
dw_1.settransobject(sqlca)
dw_1.Filter()//这个地方应该为 retrieve,不是filter,不过好像也能实现。
此外就是dw_1.settransobject(sqlca)重复


to hyan(hyan):
楼上的说法好像不成立





回复
hyan 2003-12-12
将 if ls_sql="" 的条件修改为 if ls_sql+"a"="a" 试试

好象PB不能使用使用“”
回复
cxwsoftware 2003-12-12
end if
回复
daiwoo_wang 2003-12-12
要 养成良好的习惯,在写一个IF的时候,马上写END IF ,然后在中间写东西,不要以为自己可以记得清。另外缩进很重要,良好的编程风格和习惯是必不可少的,否则你要付出很多代价
回复
klbt 2003-12-12
end if时多时少,细心很重要。
回复
mittee 2003-12-12
是保存的时候出现错误吧,
还有代码有一些问题。
string ls_oldsql
dw_1.settransobject(sqlca)
ls_oldsql = dw_1.getsqlselect()
ls_sql = ls_oldsql + "and " + ls_sql //注意数据窗口的sql语法是否有where,
//如果没有还要加上,不需要and
dw_1.SetSQLSelect(ls_sql)
dw_1.retrieve()
dw_1.SetSQLSelect(ls_oldsql)



回复
Zhaoxf0201 2003-12-12
对啊,一个多了一个endif ,另一个少了一个end if
回复
workhand 2003-12-12
注意语句的缩进,前面多了一个end if 后面少了一个end if 。
回复
小子侯 2003-12-12
string ls_sql
string ls_jfnd,ls_xm
ls_jfnd=trim(sle_1.text)
ls_xm=trim(sle_2.text)
if ls_jfnd<>"" and not isnull(ls_jfnd) then
ls_sql="c_yymx.bh='"+ls_jfnd+"'"
end if

if ls_xm<>"" and not isnull(ls_xm) then
if ls_sql="" or isnull(ls_sql) then
ls_sql="c_yymx.ypbh='"+ls_xm+"'"
else
ls_sql=ls_sql+" and c_yymx.ypbh='"+ls_xm+"'"
end if
end if


dw_1.settransobject(sqlca)
IF dw_1.SetSQLSelect(ls_sql) = 1 THEN
dw_1.settransobject(sqlca)
dw_1.Filter()
ELSE
messagebox("系统提示","检索数据错误!")
END IF

回复
lmby 2003-12-12
if ls_xm<>"" and not isnull(ls_xm) then
if ls_sql="" or isnull(ls_sql) then
ls_sql="c_yymx.ypbh='"+ls_xm+"'"
else
ls_sql=ls_sql+" and c_yymx.ypbh='"+ls_xm+"'"
end if
end if
end if//多了一个end if
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

816

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告