procedure TForm3.Button1Click(Sender: TObject);
var opwd,npwd,userid,pwd:string;
begin
opwd:=edit1.Text;
npwd:=edit3.Text;
userid:=staff_id;
pwd:=opwd;
if edit2.text<>edit3.Text then begin
showmessage('新密码两次输入不匹配,请验证后重新输入');
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit1.SetFocus;
end
else
begin
with adoquery1 do begin
close;
sql.Clear;
sql.Add('select * from staff where userid=:userid and pwd=:pwd');
parameters.ParamByName('userid').Value:=userid;
parameters.ParamByName('pwd').Value:=pwd;
active:=true;
execsql;
open;
if recordcount>0 then begin
close;try
sql.Clear;
sql.Add('update staff set pwd=:npwd where userid=:userid');//此处为疑问点
parameters.ParamByName('userid').Value:=userid;
execsql;
edit4.Text:=npwd;
showmessage('密码更改成功');
except
showmessage('网络错误,密码更改失败,请检查网络');
end;
end
else
showmessage('密码错误');
form3.Close; end;
end;
end;运行后提示‘密码更改成功’,但查询数据库PWD的值却是NULL,请高手指教。
var opwd,npwd,userid,pwd:string;
begin
opwd:=edit1.Text;
npwd:=edit3.Text;
userid:=staff_id;
pwd:=opwd;
if edit2.text<>edit3.Text then begin
showmessage('新密码两次输入不匹配,请验证后重新输入');
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit1.SetFocus;
end
else
begin
with adoquery1 do begin
close;
sql.Clear;
sql.Add('select * from staff where userid=:userid and pwd=:pwd');
parameters.ParamByName('userid').Value:=userid;
parameters.ParamByName('pwd').Value:=pwd;
active:=true;
execsql;
open;
if recordcount>0 then begin
close;try
sql.Clear;
sql.Add('update staff set pwd=:npwd where userid=:userid');//此处为疑问点
parameters.ParamByName('userid').Value:=userid;
execsql;
edit4.Text:=npwd;
showmessage('密码更改成功');
except
showmessage('网络错误,密码更改失败,请检查网络');
end;
end
else
showmessage('密码错误');
form3.Close; end;
end;
end;运行后提示‘密码更改成功’,但查询数据库PWD的值却是NULL,请高手指教。
解决方案 »
- 变量命名中的符号
- 急求答案 LoadFromStream(const Stream: IUnknown); 如何调用?
- 求:FastReport2.53注册版For D7
- custtask.DLL,dtspkg.dll,dtspump.DLL:知道的大侠请进!!小鬼莫入!
- 关于组件介绍的书有么,在哪下载呀
- 现在有没有DELPHI高手在线的?有急问题请教!
- 如何在dbgrid中显示数据!!!!!
- 怎样在DBGridEh中实现过滤功能?
- 文件传送
- 急需解决的关于日期的问题,请问如何截获这个错误?请各位大侠帮忙
- 快捷键的问题,只按下“S”,而不需要按下“ctrl+s”
- 跪求ADSL拨号组件或源码,分不够另加贴,谢谢各位大虾来帮帮忙。
parameters.ParamByName('userid').Value:=userid;还要加上一个
parameters.ParamByName('npwd').Value := yourpassword;
仅
active:=true;
execsql;
open;
这几句就看出来你对TADOQuery的操作还停留在表层
SQL.Close; //加上这句试试
sql.Clear;
sql.Add('update staff set pwd=:npwd where userid=:userid');//此处为疑问点
parameters.ParamByName('userid').Value:=userid;
execsql;另外,对SELECT语句,你只有Open就行了,不要再发什么ExecSQL命令
往往一个简单的问题要困扰很久,只好上网来求助。
多谢 zeroxing(胸无半点墨,腰有万贯财;此般理想高,怎奈做不到!)的指点和诸位的热心回复,问题已经解决。
查询,用open;