关于权限问题

pooyui 2008-02-26 10:53:00
我有一个用户表,里面有用户名,密码,权限,每个用户对应不同的权限,我的登录的时候已经把权限定义成全局变量了
就是我在登录的时候写了一句代码userpower:=DataModule1.adoquerylogin.fieldbyname('power').value;
我想在单击一个菜单的时候,判断这个用户的权限,在菜单的click事件中执行如下代码:
if userpower='管理员' then
userform.show
else
application.messagebox('对不起,您没有权限','提示',mb_ok);
end;
但是不管登录用户是不是管理员都能出来userform,但是换成下面的
if userpower='管理员' then
application.messagebox('对不起,您没有权限','提示',mb_ok)
else
userform.show;
end;
就不管是不是管理员都会弹出没有权限的提示框,总是执行第一句的,怎么回事
...全文
59 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mantti 2008-02-27
  • 打赏
  • 举报
回复
adoquerylogin没有打开吧
pooyui 2008-02-27
  • 打赏
  • 举报
回复
谢谢各位了,想不到能得到这么细心的解答,能帮助我这个新手,再次感谢!
jaoan 2008-02-27
  • 打赏
  • 举报
回复
靠~~算错数了,“管理员”6位,你定义了8位的长度~~~汗~
jaoan 2008-02-27
  • 打赏
  • 举报
回复
你数据库相应字段是什么类型的?用的是SQL库么?如果是SQL库而且数据类型是char型的,可能的问题如下:
你的字段长度是否设置的大于“管理员”,也就是8位。如果大于8位,打个比方来说你设了10位,那么在你输入一个不足10位的
字符串时系统将用空格自动补位。也就是说“管理员”后面会多出两个空格。
着这样说来你判断if userpower='管理员' then 当然不行。你可以用trim函数(清除字符串两边的空格)来决绝。
或者将数据类型改成varchat型,这种类型的数据在遇到不足规定长度的字符串时不会用空格补位。

不知道我说的请不清楚,祝你能解决问题。
huangjianfen 2008-02-27
  • 打赏
  • 举报
回复
userpower:=DataModule1.adoquerylogin.fieldbyname('power').value
顯示一下userpower的值,看看是否等於‘管理員’,要注意裡面是否包涵了空格的。
lihuasoft 2008-02-26
  • 打赏
  • 举报
回复
2楼说错了,是end;有问题(多余)。应该不是因为它。
lihuasoft 2008-02-26
  • 打赏
  • 举报
回复
另外,application.messagebox('对不起,您没有权限','提示',mb_ok);这句最后的;似乎有问题。但应该不是因为它。
lihuasoft 2008-02-26
  • 打赏
  • 举报
回复
描述能力不错,很清晰。赞一个

我想你困惑的不是解决问题的方法,而是找到“问题所在”的方法

把下面这句,加到if语句前面,看一下userpower是不是正确获得了。

Showmessage(UserPower);

2,497

社区成员

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

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