首页 | 源码下载 | 编程控件 | 书籍教程 | 应用方案 | 设计素材 | 项目交易 | 开发文档 | 商业源码 | | 我的帐号
登陆我的帐号
帐 号:
密 码:
我还不是会员,需要注册!

截止2004年12月16日
本站源码总量RAR压缩为 4,206,733 KB。其中免费源码为 1,124,495 KB,商业源码为 3,082,238 KB
C/C++ 129,555 KB
Delphi 1,258,381 KB
Java 120,937 KB
.Net 36,886 KB
PowerBuilder 954,525 KB
Visual Basic 923,454 KB
ASP 259,795 KB
JSP 4,987 KB
其他 94,723 KB

本站是中国频道、中资源、时代互联顶级代理:注册国际域名70元,国内域名130元,各类ASP、PHP、JSP空间8折优惠!
本站承担各类网站制作开发及方案策划,项目经验丰富,欢迎洽谈!

网站动态
对.NET感兴趣吗?对C…
加入会员,送重量级代码!
现在下载速度大幅提高!
关于资源更新的说明
关于下载错误的原因!
源码资源网新版网站投入运…

当前位置:源码资源网首页 > 开发文档首页 > Delphi >如何实现系统权限的设置

如何实现系统权限的设置
人气:91 文字大小:     作者:

在许多数据库方面的书籍都曾提到过数据系统操作权限设置,但仅仅是单纯地介绍原理,没有真正地给出一个示例;或者只是简单地给出一个系统权限的例子:口令+用户名。然而在实际的数据库系统开发中是不可能这么简单;它要求系统的权限管理能够对系统中每一项操作进行控制;如数据的增加,删除,修改等等。
为了大家能够进行技术交流,现把我在一个MIS中所做的权限管理功能的实现写出来,请大家斧正。
原理如下:
在一个表中包涵系统中所有的菜单项及功能按钮,并增加相关字段用来设定有关的操作权限是“True”还“False”;在进入系统后除了要用户名和密码正确外还要通过在该表中找到相关的权限看是否能操作。
根据以上原理我们可以如下操作:
1.表的结构设置为:
CD Alphi 20 *  操作项,为用户名加菜单项)
ZJ Logical  增加功能,“能”为True,“不能”为False,默认为False)
其它字段类似。
2.在Form中放入一个Ttreeview,一个TTabel,二个Tbutton(Button1,Button2),一个TQuery,一个TDatasource和TDBGrid。
3.DBGrid的Dataset为Query,DBGrid的Datasource为Datasource1。
4.TQuery1的RequertLive设为True,可以修改值。
原程序如下:
procedure TForm1.Button1Click Sender: TObject);//把菜单中所有项加入到Treeview1中
var
i,j:integer;
mynode:ttreenode;
begin
with treeview1 do
for I:= 0 to mainmenu1.Items.Count-1 do
begin
mynode:=items.Add nil,mainmenu1.items[i].Caption);
for j:=0 to mainmenu1.items[i].count-1 do
begin
Items.AddChild mynode,mainmenu1.Items[i].Items[j].Caption);
end;
end;
end;
procedure TForm1.Button2Click Sender: TObject);//把Treeview1中的Items转成表 // 的’CD’字字段唯一标识。
var
i,j,a1:integer;
begin
table1.First;
table1.Active:=true;
a1:= treeview1.Items.count-1;//Treeview1中的总结点数
for i:=0 to a1 do
begin
if i=0 then //如果是第一个结点
begin
table1.Insert;
table1.FieldByName ’cd’).asstring:=edit2.text+treeview1.Items[i].Text;
end
else
if treeview1.Items[i].Index =0 then //如果是某个结点中的第一个子结点
begin
j:=i-1;
table1.insert;
table1.FieldByName ’cd’).asstring:=edit2.text+treeview1.Items[j].Text+’-’+treeview1.Items[i].Text;
end
else
if copy treeview1.Items[i].Text,1,1)<>’&’ then //如果不是父结点
begin
j:=i-treeview1.Items[i].Index-1;
table1.insert;
table1.FieldByName ’cd’).asstring:=edit2.text+treeview1.Items[j].Text+’-’+treeview1.Items[i].Text;
end
else
if copy treeview1.Items[i].Text,1,1)=’&’ then   //如果是父结点
begin
table1.insert;
table1.FieldByName ’cd’).asstring:=edit2.text+treeview1.Items[i].Text;
end;
end;
end;

procedure TForm1.TreeView1Click Sender: TObject); //查找或修改某人在某项的//操作权限
var
s1:string;
begin

s1:=treeview1.Selected.Text;              //选中结点
with query1 do
begin
close;
sql.clear;
sql.Add ’select * from qx where cd like:v_cd’);
parambyname ’v_cd’).asstring:=edit2.text+’%’+s1;
prepare;
open;
end;
end;
end.
本段代码在windows2000及Delphi5中运行通过。

 

文章出处:   发表时间:2004-12-24 17:01:15

1条数据记录,分1页显示 上一页 < [1] > 下一页
相关文章  
没有找到相关的数据!

相关评论  
 当前没有评论!
请登陆后再来发表评论!
当前位置:源码资源网首页 > 开发文档首页 > 如何实现系统权限的设置
会员升级 | 广告服务 | 网站开发 | 联系我们 | 网站动态 | 客户反馈

CodeRes.com 保留所有权利 2004
本站所有资源仅供学习参考,版权归原作者所有,如侵犯了您的权益请与我们联系