代码忘写了!!!!!真是的 data.qu_pass.close;
  data.qu_pass.SQL.clear;
  data.Qu_pass.sql.Add('select * from pass');
  data.Qu_pass.sql.Add('where name=:name and passwd=:passwd and issuper="y"');
  data.qu_pass.parambyname('name').value:=edit1.text;
  data.qu_pass.parambyname('passwd').value:=edit2.text;
  data.qu_pass.open;
    if data.qu_pass.recordcount=1  then
   f_login.Close;    if data.qu_pass.recordcount<>1 then
        data.qu_pass.close;
        data.qu_pass.SQL.clear;
        data.Qu_pass.sql.Add('select * from pass');
        data.Qu_pass.sql.Add('where name=:name and passwd=:passwd ');
        data.qu_pass.parambyname('name').value:=edit1.text;
        data.qu_pass.parambyname('passwd').value:=edit2.text;
        data.qu_pass.open;
        f_main.n28.enabled:=false;
        f_main.n31.enabled:=false;
        f_main.n9.enabled:=false;
        f_main.n13.enabled:=false;
        f_main.n17.enabled:=false;
        if data.qu_pass.recordcount=1  then
         f_login.close
        else
          application.messagebox('密码错误!','提示',mb_ok);
       end;

解决方案 »

  1.   

    pppppppppppppppppp,就命呀,见死不救得这么多
      

  2.   


     ....
     data.qu_pass.parambyname('name').value:=Trim(edit1.text);
     data.qu_pass.parambyname('passwd').value:=Trim(edit2.text);
     ...试试。
            
      

  3.   

    more help,我只差一步就要成功了,就是着哥鱼用户级别判断有问题,
    有没更好的办法?
      

  4.   

    ...
    data.Qu_pass.sql.Add('where name=:name and passwd=:passwd and issuper='y'');
    ...试试。  
      

  5.   

    ...
    data.Qu_pass.sql.Add('where name=:name and passwd=:passwd and (issuper='y' or issuper='Y')');
    ...试试。  
      

  6.   

    老兄,你能否告诉一种简单用户类型处理方法?
    我曾用过2个radiobutton,把代码写在onenter事件里,但是,操作时必须在
    radio上点击一下,而后输入密码,系统才认,很不合理,能否有更好的办法吗?
      

  7.   

    if data.qu_pass.recordcount<>1 then
    到else之间加begin....end,呵呵 !
            
      

  8.   

    我很菜的,做的是最初级的左面数据库,
    我是通过设置mainmenu组件的enabled属性来决定用户是否可用该模块,
    但是在loginform里授权时,没有思路了,不知该如何处理?
    上述的代码就是我在 确认 按钮下写的,但是无法判别超级用户,
    也许是代码逻辑有错误,但我看不出来,
    如果你能告诉我一种更好的办法就好了
      

  9.   

    你试试下面的行不行:
      data.qu_pass.SQL.clear;
      data.Qu_pass.sql.Add('select * from pass');
      data.Qu_pass.sql.Add('where name=:name and passwd=:passwd and issuper="y"');
      data.qu_pass.parambyname('name').value:=edit1.text;
      data.qu_pass.parambyname('passwd').value:=edit2.text;
      data.qu_pass.execsql;
        if data.qu_pass.recordcount>0  then
          begin
           f_login.Close;
           exit;      end
        else
           begin
            //data.qu_pass.recordcount<>1 then
            data.qu_pass.close;
            data.qu_pass.SQL.clear;
            data.Qu_pass.sql.Add('select * from pass');
            data.Qu_pass.sql.Add('where name=:name and passwd=:passwd ');
            data.qu_pass.parambyname('name').value:=edit1.text;
            data.qu_pass.parambyname('passwd').value:=edit2.text;
            data.qu_pass.execsql;
            if data.qu_pass.recordcount>0  then
            begin
            f_main.n28.enabled:=false;
            f_main.n31.enabled:=false;
            f_main.n9.enabled:=false;
            f_main.n13.enabled:=false;
            f_main.n17.enabled:=false;
            if data.qu_pass.recordcount>0  then
            f_login.close
            end
          
           else
              application.messagebox('密码错误!','提示',mb_ok);
          end 
    end;
      

  10.   

    怎么多写了一行?
    data.qu_pass.SQL.clear;
      data.Qu_pass.sql.Add('select * from pass');
      data.Qu_pass.sql.Add('where name=:name and passwd=:passwd and issuper="y"');
      data.qu_pass.parambyname('name').value:=edit1.text;
      data.qu_pass.parambyname('passwd').value:=edit2.text;
      data.qu_pass.execsql;
        if data.qu_pass.recordcount>0  then
          begin
          f_login.Close;
          exit;      end
        else
          begin
            //data.qu_pass.recordcount<>1 then
            data.qu_pass.close;
            data.qu_pass.SQL.clear;
            data.Qu_pass.sql.Add('select * from pass');
            data.Qu_pass.sql.Add('where name=:name and passwd=:passwd ');
            data.qu_pass.parambyname('name').value:=edit1.text;
            data.qu_pass.parambyname('passwd').value:=edit2.text;
            data.qu_pass.execsql;
            if data.qu_pass.recordcount>0  then
            begin
            f_main.n28.enabled:=false;
            f_main.n31.enabled:=false;
            f_main.n9.enabled:=false;
            f_main.n13.enabled:=false;
            f_main.n17.enabled:=false;
            //if data.qu_pass.recordcount>0  then
            f_login.close
            end
          
          else
              application.messagebox('密码错误!','提示',mb_ok);
          end 
    end;  
      

  11.   

    成功了,感谢,三鞠躬,有分之日必将报答
    请问:
    1,data.qu_pass.execsql;是什么意思
    2,exit是不是中断程序?
    3,这段程序运行正常,只是用普通用户登陆后,在调出loginform注册
    为超级用户时,系统没有反映,让视为普通用户,但不报错
    谢谢
            
      

  12.   

    呵呵,太客气了,成功就好。
    有分之日必报答,发财之时别忘了俺!
    1.data.qu_pass.execsql;与data.qu_pass.open差不多,有点小区别,你自己看看吧
    2.exit是退出此过程,其实上面的代码有没有都行,有 else嘛
    3.“注册为超级用户,系统没有反映”,不知你是怎么做的,上面的代码好象没涉及到吧,我也不知道了!