MSSQL网页设计关于软件权限设置的一点心得体味
一个语句分成两个event(实际上不止,其他可以忽略),一个table_mapevent和一个Rows_log_event。Table_mapevent是一样的,主要看Rows_log_event。心得自己在软件开辟过程当中关于用户权限处置的一点点心得体味,拿出来与人人共享,但愿人人多提可贵定见。
以往年夜多半文章材料设置用户权限都是经由过程ActionList与数据库中的权限表相联完成。我经由理论经由过程控件的Tag属性(每一个控件都有一个保存的Tag属性,默许值为0),也能够完成权限的设置,上面我就详细申明完成办法。
1、将一切必要设置权限的菜单和按钮的Tag属性从1入手下手分派不反复的阿拉伯数字(1,2,3......),这里不必0(控件Tag属性的默许值),暗示此控件不需做权限设置。
2、将一切权限称号加到CheckBoxList中,包含菜单和按钮,其按次必定要与分派阿拉伯数字的按次完整分歧。
3、在数据库中创建操纵员表(包含编号、姓名、权限)权限用一个只包括0和1的字符串暗示。用0暗示有响应的权限(对应的菜单或按钮可用,Enabled=true),用1暗示没有响应的权限(对应的菜单或按钮不成用,Enabled=false)。这个字段要设置充足长(我预留了50位),以备扩大之用。
4、设置权限次要代码以下:
/*qx,用户权限字符串,operator操纵员表,privilege权限字段*/
AnsiStringqx="";
for(i=1;i<=CheckListBox1->Items->Count;i++){
if(CheckListBox1->Checked){
qx=qx+"0";
}else{
qx=qx+"1";
}
}
Sql="updateoperatorsetprivilege="+qx+"whereOperator_name="+CboOperatorName->Text+"";
5、设置用户的全局变量,在窗体的FormShow事务中到场权限判别代码以下:
/*体系办理员具有一切权限*/
if(FrmDM->GetUserName()!="体系办理员"){
AnsiStringqx;
/*还没有设置权限*/
if(strPrivilege.Length()==0){
for(intj=0;j<=Parent->ComponentCount-1;j++){
if(Parent->Components->Tag!=0){
if(Parent->Components->ClassNameIs("TMenuItem")){
((TMenuItem*)Parent->Components)->Enabled=false;
}else{
((TButton*)Parent->Components)->Enabled=false;
}
}
}
}else{
for(i=1;i<=strPrivilege.Length();i++){/*已设置权限*/
qx=strPrivilege.SubString(i,1);
if(qx=="1"){
for(j=0;j<=Parent->ComponentCount-1;j++){
if(Parent->Components->Tag==i){
if(Parent->Components->ClassNameIs("TMenuItem")){
((TMenuItem*)Parent->Components)->Enabled=false;
}else{
((TButton*)Parent->Components)->Enabled=false;
break;
}
}
}
}
}
}
以上是我在软件开辟过程当中关于用户权限设置的一点点心得体味,但愿可以举一反三。
mysql的原来开发者又开发了MariaDB,MariaDB适合用来替代mysql吗 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
页:
[1]