¥¥¥¥¥¥ 神啊!救救我吧! ¥¥¥¥¥¥(0分)

  • 主题发起人 主题发起人 luckywzy
  • 开始时间 开始时间
L

luckywzy

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue]怎样在程序中根据网络各个不同的登陆用户,相应的控制一张表(TABLE)
中每个字段的读、写权限?
用DELPHI6在WIN2000下SQL SERVER2000数据库!
注意:是控制一张表(TABLE)中每个字段的读、写权限!!![/blue]

由于此问题无法用分来衡量,我留信箱:LUCKY_WZY@YAHOO.COM.CN
大家有事要帮助一定尽全力!

 
SQL SERVER 好像不能锁一个字段吧?
好像连一条记录也不能锁吧?
搞不清楚
 
要你自己控制,我正在作这方面的东西,我的作法是:事先设置好每个用户能控制的字段
名,当用户登陆后取出他能控制的字段,在他更改前或他打开DATASET后,把这个DATASET
的所有字段循环一次,设置好他登陆时的权限。TField.ReadOnly:=True.
 
把SQL的权限搬到前台来吧!
 
同意wumeng的看法,我们写程序的风格一直是这样的,建立一个控制表,里面可以定义
显示名称(中文的),及每个用户的权限,Table或query的afteropen事件里,来规定
显示的权限、中文域名,还可以定义域的显示顺序。
 
我也看过台湾《天心》ERP软件的字段控制界面,想过如[1213]及[WUMENG]的实现方法
只不过不是很确定!因为代码会比较多!
(要用DATAMODLE三层架构在应用程序服务器设定?)

请两位说详细一点!
 
代码如下:
假设权限表有两上域:username,ppurview。username存放用户名,ppurview存放可以访问的域的列表。
var
i:integer;
function haveppurview(fieldname:string):boolean;
var
PpurviewQuery:TQuery;
begin
PpurviewQuery:=TQuery.create(nil)
try
PpurviewQuery.databasename:=databasename;
PpurviewQuery.sql.clear;
PpurviewQuery.sql.add('select * from userright');
PpurviewQuery.sql.add('where username="'+username+'"')
PpurviewQuery.open;
if (PpurviewQuery.recordcount>0) and pos(fieldname,PpurviewQuery.fieldbyname('ppurview').asstring>0) then
result:=Ture
else
result:=False;
PpurviewQuery.close;
finally
PpurviewQuery.free;
end;
end;
begin
for i:=0 to table.fieldcount-1 do
begin
if haveppurview(table.fields.fieldname) then
table.fields.readonly:=false
else
table.fields.readonly:=True;
end;
end;
 
TO 1213
受教了!THANK YOU!
 
接受答案了.
 
1213:
你好!能给我你的E_mail?有些问题想请教!my mail:lucky_wzy@yahoo.com.cn
 
后退
顶部