为什么过滤不出来,走到第一句就有错误
procedure TfrmLogin.BtnLogClick(Sender: TObject);
begin
  
  datamodule1.CDSBaseUser.Filter:='NAME='''+edit1.Text+'''';   //根据输入的用户名设置过滤器
  datamodule1.CDSBaseUser.Filtered:=true;         //激活过滤器
  datamodule1.CDSBaseUser.Open;                   //获取用户信息  if datamodule1.CDSBaseUser.recordcount=1 then         //判断用户名是否存在
  begin
    if datamodule1.CDSBaseUser['PASSWORD']=edit2.text then
    begin
      if datamodule1.CDSBaseUser['LIMIT']='¹管理员' then
      begin
        frmlogin.hide;
        frmmain.Show;
      end
      else
        MessageDlg(‘用户权限错误¡',mtconfirmation, [mbOK], 0);
        Abort;
      end
      else
        MessageDlg(’密码不匹配¡',mtconfirmation, [mbOK], 0);
        Abort;
    end
    else
      MessageDlg(‘检查用户名是否存在¡',mtconfirmation, [mbOK], 0);
      Abort;  
end;

解决方案 »

  1.   

    哇,要在Filter之前Open;
    改成:  datamodule1.CDSBaseUser.Open;                   //获取用户信息
      datamodule1.CDSBaseUser.Filter:='NAME='''+edit1.Text+'''';   //根据输入的用户名设置过滤器
      datamodule1.CDSBaseUser.Filtered:=true;         //激活过滤器
      

  2.   

    //加入:datamodule1.CDSBaseUser.Close;
    //加入:datamodule1.CDSBaseUser.Filtered:=false; 
    datamodule1.CDSBaseUser.Filter:='NAME='''+edit1.Text+'''';   //根据输入的用户名设置过滤器
      datamodule1.CDSBaseUser.Filtered:=true;         //激活过滤器
      datamodule1.CDSBaseUser.Open;   
    //你实验一下吧 1
      

  3.   

    DataModule1 的实例有没有创建?
      如果已经创建,则这样改一下试试:
      datamodule1.CDSBaseUser.Filter:='NAME = '''+edit1.Text+'''';   //在 = 前后加个空格