当前位置: 代码迷 >> PB >> PB9.0的密码修改窗口有关问题,请高手们指教,小弟我多多给分
  详细解决方案

PB9.0的密码修改窗口有关问题,请高手们指教,小弟我多多给分

热度:204   发布时间:2016-04-29 10:36:19.0
PB9.0的密码修改窗口问题,请高手们指教,我多多给分
请各位高手指教一下,我做了个密码修改窗体,像一般的一样设置三个Sle文本输入框,确定按钮的代码如下:
其中gs_password是全局变量,登陆窗口时给它赋值为登陆用户的密码。
string wh_password
if trim(sle_1.text)<>gs_password then
messagebox("提示","旧密码输入错误!")
else
if trim(sle_2.text)<>trim(sle_3.text) then 
messagebox("提示","两次所输入的密码不吻合!")
else
wh_password=trim(sle_2.text)
gs_password=trim(sle_2.text)
UPDATE users
SET password = :wh_password
WHERE (users.username = :gs_username ) AND
  (users.password = :wh_password); 
if sqlca.sqlcode<>0 then 
messagebox("提示","密码修改失败!")
else 
close(parent)
messagebox("提示","密码修改已完成!")
end if
end if
end if
没有错误,保存成功,运行时也没有问题,但是为什么修改后的密码在数据库的users表中没有出现,还是老样子呢?请高手指教

------解决方案--------------------
UPDATE users
SET password = :wh_password
WHERE (users.username = :gs_username ) AND
(users.password = :wh_password);

这句不对啊 

你wh_password是新密码 UPDATE时 这应该等于老密码 gs_password 

这样才是:把库里用户名密码为老密码的用户 改为新密码 wh_password
------解决方案--------------------
gs_password=trim(sle_2.text) 也要调下位置

改成功了再赋值给全局变量 

要不WHERE条件都不能用gs_password了。
  相关解决方案