请帮我看下,为什么我执行这段代码后,到关闭窗口的时候就会出现非法关闭!

q024100406 2008-03-20 01:57:44
string ls_oldpass,ls_userpass,ls_pass
string ls_newpass1,ls_newpass2
int ret

ls_oldpass = trim(string(sle_old.text))
ls_newpass1 = trim(string(sle_new1.text))
ls_newpass2 = trim(string(sle_new2.text))

if ls_newpass1 <> ls_newpass2 then
messagebox("提示!","新输入的密码不一致,请检查!")
return
end if

select user_pass
into :gs_oper_pass
from yx_sysuser
where user_id = :gs_oper_id;
riddle(gs_oper_pass,ls_pass)
if ls_oldpass <> ls_pass then
messagebox("提示!","原始密码不正确,请重新输入!")
sle_old.text = ''
sle_old.setfocus()
return
end if

puzzle(ls_newpass1,ls_userpass)
update yx_sysuser
set user_pass = :ls_userpass
where user_id = :gs_oper_id;
if sqlca.sqlcode <> 0 then
messagebox("","修改失败!请与管理员联系!")
else
commit;
messagebox("","密码修改成功!退出系统后生效!")
//return 1
//ret = messagebox("","注销系统吗?",question!,yesno!,2)
//if ret = 1 then
close(w_passupdate)
return 1
end if
...全文
143 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
关注 接分
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
有点难度哦
eviler 2008-03-21
  • 打赏
  • 举报
回复
估计你是在 窗口 w_passupdate 中写的代码吧
去掉 return 1 就可以了

原因: close后,窗口的实例已经不存在,你再return 没有对应的实例接收 了,就出错


希望是这样
q024100406 2008-03-21
  • 打赏
  • 举报
回复
这个好象也是不行!好象是我用了riddle()和puzzle()两个函数的问题!前者是密码的解密,后者是加密!
青锋-SS 2008-03-20
  • 打赏
  • 举报
回复
close(w_passupdate)
return 1


换成
closewithreturn(w_passupdate,1)
试试
相关推荐
发帖
脚本语言

739

社区成员

PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
帖子事件
创建了帖子
2008-03-20 01:57
社区公告
暂无公告