在三层中,如何过滤出数据表中的某条信息?

dqkeke 2003-10-16 10:43:04
我想在登陆时,借用户名把这个用户的信息从数据表中过滤出来,然后判断这个用户的权限,再选择进入哪个菜单,我用了以下程序,可是不好使,不知道哪位高手有好办法?小女子先谢谢了!
走到第一句就有错误

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;
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphiprogramer 2003-10-16
  • 打赏
  • 举报
回复
楼上的老兄说得有道理
空中居士 2003-10-16
  • 打赏
  • 举报
回复
datamodule1.CDSBaseUser.Open; //获取用户信息
datamodule1.CDSBaseUser.Filtered:=false; datamodule1.CDSBaseUser.Filter:='NAME='+''''+edit1.Text+''''; //根据输入的用户名设置过滤器
datamodule1.CDSBaseUser.Filtered:=true;
空中居士 2003-10-16
  • 打赏
  • 举报
回复
我喜欢小女子,不喜欢小女子的问题:

datamodule1.CDSBaseUser.Filtered:=false; datamodule1.CDSBaseUser.Filter:='NAME='+''''+edit1.Text+''''; //根据输入的用户名设置过滤器
datamodule1.CDSBaseUser.Filtered:=true;
noil0125 2003-10-16
  • 打赏
  • 举报
回复
datamodule1.CDSBaseUser.Filter:='NAME='+edit1.Text;
billy_zh 2003-10-16
  • 打赏
  • 举报
回复
又是一个关于引号的问题,
强烈推荐使用Quotedstr函数!filter:= 'name=' + QuotedStr(edit1.text)
即使字符内有引号也没问题。
另外TClientDataSet的中文过滤功能好像不太稳定!

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧