SELECT   
   ABC_LOGIN.LOGINPASS
  INTO :mima
  FROM ABC_LOGIN
  WHERE ABC_LOGIN.LOGINPASS=:sle_pass.text;
 if   sle_pass.text=""or sle_newpass.text="" or sle_newpass1.text="" or sle_newpass.text<>sle_newpass1.text then
 messagebox("错误!","密码不能为空,且新密码两次输入要相同!")
 sle_pass.text=''
 sle_newpass.text=''
 sle_newpass1.text=''
 sle_pass.setfocus()
else
if mima=sle_pass.text then
   //更新数据库
UPDATE ABC_LOGIN
   SET LOGINPASS=:sle_newpass.text
WHERE ABC_LOGIN.LOGINPASS=:sle_PASS.text;
messagebox("密码修改成功!","请记住新密码,下次登录是请使用新密码!")
close(parent)
else
messagebox("错误!","原密码错误,请重新输入!")
sle_pass.text=''
 sle_newpass.text=''
 sle_newpass1.text=''
 sle_pass.setfocus()
end if
end if

解决方案 »

  1.   

    select * from  ABC_LOGIN WHERE ABC_LOGIN.LOGINPASS=:sle_PASS.text;有多少条记录?
      

  2.   

    不可能啊?四条记录分别是:
              LOGINNAME       LOGINPASS 
    第一条     111              111
    第二条     admin            admin
    第三条     aaa               aaa
    第四条     222              222
    现在的问题是:不管我以111,还是admin从前台登入,修改密码后 111和admin的密码会同时变化为我修改成的密码
    而以aaa或者222登入,修改aaa和222的密码则一切正常
      

  3.   

    TO: GerryYang(轻尘) select * from  ABC_LOGIN WHERE ABC_LOGIN.LOGINPASS=:sle_PASS.text;一共是4条记录
      

  4.   

    select * from  ABC_LOGIN WHERE ABC_LOGIN.LOGINPASS=:sle_PASS.text;一共是4条记录,那
    UPDATE ABC_LOGIN 
    SET LOGINPASS=:sle_newpass.text
    WHERE ABC_LOGIN.LOGINPASS=:sle_PASS.text;
    岂不是修改了4条记录?