|
我做了一个登陆界面,点击添加用户按钮,添加了用户,但是把刚刚添加的用户输入登陆框中,就出错,说数据库没有这个用户字段,我把程序关了重新运行以后,又可以登陆了,为什么不能在添加完就直接登陆,我的代码如下。
添加按钮的代码: procedure checkinput(theedit:tedit;strdesc:string);
begin
theedit.Text:=trim(theedit.Text);
theedit.Text:=stringreplace(theedit.Text,'''','',[rfreplaceall]);
theedit.Text:=stringreplace(theedit.Text,' ','',[rfreplaceall]);
if theedit.Text='' then
begin
showmessage(strdesc);
theedit.SetFocus;
abort;
end;
end;
begin
checkinput(edit1,'请输入操作员名!');
checkinput(edit2,'请输入口令!');
with query1 do
begin
active:=false;
sql.Clear;
sql.Add('insert into users(username,passwd)');
sql.Add('values((:a),(:b))');
params[0].AsString:=edit1.Text;
params[1].AsString:=edit2.Text;
execSQL;
end;
showmessage('添加成功!');
edit1.Clear;
edit2.Clear;
登陆按钮代码:
procedure checkinput(theedit:tedit;strdesc:string);
begin
theedit.Text:=trim(theedit.Text);
theedit.Text:=stringreplace(theedit.Text,'''','',[rfreplaceall]);
theedit.Text:=stringreplace(theedit.Text,' ','',[rfreplaceall]);
if theedit.Text='' then
begin
showmessage(strdesc);
theedit.SetFocus;
abort;
end;
end;
begin
checkinput(edtusername,'请输入操作员名!');
checkinput(edtPasswd,'请输入口令!');
query1.Active:=false;
query1.ParamByName('UserName').AsString :=edtusername.Text;
query1.ParamByName('passwd').AsString :=edtpasswd.Text;
query1.Active:=true;
if query1.Eof then
begin
showmessage('操作员名或者口令不正确!');
edtusername.SetFocus;
inc(times);
end
else
modalresult:=mrOK;
if times>=3 then
begin
showmessage('非法用户无权登陆!');
modalresult:=mrcancel;
end;
|
|