真的可以吗?
把WideString Trim一下???

解决方案 »

  1.   

    是的,如果低还不放以,可以定义一个string变是,把WideString赋给它再比较不就行了吗
      

  2.   

    都转换成String,然后再trim后比较!
      

  3.   

    还是不行,这是部分代码,就是按你说的方法
    procedure TrdmLogin.UserLogin(const vUsername, vPassword,
      vHidenPassword: WideString; var vErrorCode: OleVariant);
    var
      UserName , Password , HidenPassword : String;
    begin
      UserName := Trim(vUserName);
      Password := Trim(vPassword);
      HidenPassword := Trim(vHidenPassword);  MainForm.sgdUser.Cells[1,1] := vUserName;
      MainForm.sgdUser.Cells[2,1] := vPassword;
      MainForm.sgdUser.Cells[3,1] := vHidenPassword;  qryMain.Close;
      qryMain.SQL.Clear;
      qryMain.SQL.Add('SELECT * FROM userInformation');
      qryMain.SQL.Add('WHERE userName = :pUserID');
      qryMain.Parameters.ParamValues['pUserID'] := UserName;
      if qryMain.Prepared = False then
      begin
        qryMain.Prepared := True;
      end;
      qryMain.Open;  MainForm.sgdUser.Cells[3,1] := qryMain.FieldByName('userPassword').AsString;  if  qryMain.RecordCount > 0 then //用户名存在
      begin
        if qryMain.FieldByName('userPassword').AsString <> Password then
        begin
          vErrorCode := 1; //口令错误
        end
        else
        begin
          if qryMain.FieldByName('cryticPassword').AsString <> HidenPassword then
          begin
            vErrorcode := 2; //隐含口令错误,需要重新注册
          end
          else
          begin
            if qryMain.FieldByName('userTerm').AsDateTime < Now then
            begin
              vErrorcode := 3; //用户超期,请丫续费
            end
            else
            begin
              vErrorCode := 0; //用户正常登陆
            end;
          end;
        end;
      end
      else
      begin
        qryMain.Close;
        qryMain.SQL.Clear;
        qryMain.SQL.Add('SELECT * FROM teacherInformation');
        qryMain.SQL.Add('WHERE teacherName = :pUserID');
        qryMain.Parameters.ParamValues['pUserID'] := UserName;
        if qryMain.Prepared = False then
        begin
          qryMain.Prepared := True;
        end;
        qryMain.Open;
        if qryMain.RecordCount > 0 then
        begin
          if qryMain.FieldByName('teacherPassword').AsString = Password then
          begin
            vErrorcode := 4; //老师成功登陆
          end
          else
          begin
            vErrorcode := 1; //口令错误
          end;
        end
        else
        begin
          qryMain.Close;
          qryMain.SQL.Clear;
          qryMain.SQL.Add('SELECT * FROM administrterInformation');
          qryMain.SQL.Add('WHERE administratorName = :pUserID');
          qryMain.Parameters.ParamValues['pUserID'] := UserName;
          if qryMain.Prepared = False then
          begin
            qryMain.Prepared := True;
          end;
          qryMain.Open;
          if qryMain.RecordCount > 0 then
          begin
            if qryMain.FieldByName('administratorPassword').AsString = Password  then
            begin
              vErrorcode := 5; //管理员成功登陆
            end
            else
            begin
              vErrorCode := 1; //口令错误
            end;
          end
          else
          begin
            vErrorCode := 6 //没有这个用户,请先提示注册
          end;
        end;
      end;
    end;
      

  4.   

    把类是这个
    qryMain.FieldByName('administratorPassword').AsString
    眼trim一下!
      

  5.   

    to: dennisfox(dennis)
    服了
    心服口服!!!!
    过来拿分