VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 941|回复: 3

登陆界面的添加用户问题

[复制链接]

3

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-21 01:00:01 | 显示全部楼层 |阅读模式
我做了一个登陆界面,点击添加用户按钮,添加了用户,但是把刚刚添加的用户输入登陆框中,就出错,说数据库没有这个用户字段,我把程序关了重新运行以后,又可以登陆了,为什么不能在添加完就直接登陆,我的代码如下。
添加按钮的代码: 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;
回复

使用道具 举报

0

主题

53

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-6-28 13:45:01 | 显示全部楼层
这种现象很明显就是数据刷新不及时的问题。 建议你在登陆验证的时候把query重新刷新一下!
回复

使用道具 举报

3

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-30 01:45:02 | 显示全部楼层
那应该在上面的代码中如何添加刷新代码,请说下,谢谢
回复

使用道具 举报

0

主题

53

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-7-4 10:00:01 | 显示全部楼层
query1重新EXESQL一下吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表