请各位高手指教一下,我做了个密码修改窗体,像一般的一样设置三个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了。