下面是一个很简单的权限管理测试的例子,(注:qx为权限表,login.edit1.text是在登陆窗体中输入的用户名,现在问题是权限表有这样一条记录字段0 字段1 字段2 字段3 字段4 字段5 字段6 字段7 字段8 字段1 字段9
--- -- -- --- --- --- --- --- --- --- ---
echo 1 1 1 0 0 0 1 1 1 1
字段0为登陆用户名.)
我的思想是:在主窗体"formshow"时,从权限表中查询当前登陆用户名的权限信息.
为"0"时,把菜单的enabled属性设置为false;
我下面的代码就是这样做的呀,现在的问题是:当我以"echo"这个用户名登陆时,为什么
下面的代码没有发挥作用,为"0"的菜单的"enabled"还是为true,为什么没有变成false,
请各位大哥指导,谢谢!!procedure Tmainsys.FormShow(Sender: TObject);
begin
with dm.query4 do
begin
close;
sql.Clear;
sql.Add('select * from qx where 用户名=:userixm');
parameters.ParamByName('userixm').Value:=trim(login.Edit1.Text);
prepared:=true;
open;
if fields[1].Value=0 then
begin
N2.Enabled:=false;
speedbutton1.Enabled:=false;
end;
if fields[2].Value=0 then
begin
N6.Enabled:=false;
speedbutton2.Enabled:=false;
end;
if fields[3].Value=0 then
N4.Enabled:=false;
if fields[4].Value=0 then
begin
N13.Enabled:=false;
speedbutton4.Enabled:=false;
end;
if fields[5].Value=0 then
begin
N15.Enabled:=false;
speedbutton5.Enabled:=false;
end;
if fields[6].Value=0 then
begin
N16.Enabled:=false;
speedbutton6.Enabled:=false;
end;
if fields[7].Value=0 then
N17.Enabled:=false;
if fields[8].Value=0 then
N9.Enabled:=false;
if fields[9].Value=0 then
begin
N11.Enabled:=false;
speedbutton3.Enabled:=false;
end;
end;
end;end.
--- -- -- --- --- --- --- --- --- --- ---
echo 1 1 1 0 0 0 1 1 1 1
字段0为登陆用户名.)
我的思想是:在主窗体"formshow"时,从权限表中查询当前登陆用户名的权限信息.
为"0"时,把菜单的enabled属性设置为false;
我下面的代码就是这样做的呀,现在的问题是:当我以"echo"这个用户名登陆时,为什么
下面的代码没有发挥作用,为"0"的菜单的"enabled"还是为true,为什么没有变成false,
请各位大哥指导,谢谢!!procedure Tmainsys.FormShow(Sender: TObject);
begin
with dm.query4 do
begin
close;
sql.Clear;
sql.Add('select * from qx where 用户名=:userixm');
parameters.ParamByName('userixm').Value:=trim(login.Edit1.Text);
prepared:=true;
open;
if fields[1].Value=0 then
begin
N2.Enabled:=false;
speedbutton1.Enabled:=false;
end;
if fields[2].Value=0 then
begin
N6.Enabled:=false;
speedbutton2.Enabled:=false;
end;
if fields[3].Value=0 then
N4.Enabled:=false;
if fields[4].Value=0 then
begin
N13.Enabled:=false;
speedbutton4.Enabled:=false;
end;
if fields[5].Value=0 then
begin
N15.Enabled:=false;
speedbutton5.Enabled:=false;
end;
if fields[6].Value=0 then
begin
N16.Enabled:=false;
speedbutton6.Enabled:=false;
end;
if fields[7].Value=0 then
N17.Enabled:=false;
if fields[8].Value=0 then
N9.Enabled:=false;
if fields[9].Value=0 then
begin
N11.Enabled:=false;
speedbutton3.Enabled:=false;
end;
end;
end;end.
试试这样做行不行?
你上边的代码在QUERY的OPEN 之后直接就进行操作,不管是否找到了这个用户。所以不能实现你的功能。
我可以预言,你输入一个不存在的用户进去,他的权限将是所有的菜单项。这样的话,还要权限表干什么呢?