在oracle中
CREATE SEQUENCE
Emp_sequence
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
然后在插入数据时候可以通过如下代码实现:
insert into users (U_Id,u_username,u_password,u_level)
values
(Emp_sequence.NEXTVAL,'yunguang','haha','0')
其中U_Id为表users的主键。
这样就可以实现在U_Id上产生自动增量效果!
具体的可视化操作还没有找到,晕!!!
功能实现要求:
操作环境vb.net和oracle9i
由于数据量很大,所以不能利用rs结果集一次读出,在往treeview节点上填充。
需要填充树型节点的字段内数据形式为以"."分割
如:01 01.01 01.02 01.01.01 02 02.01 02.01 ............................
利用oracle自身instr函数,可以按"."数分割。并返回所需要的结果集,初始化加载读取不带"."字段,第一次读取带一个"."…………
至于sqlserver数据库与oracle的函数书写略有不同,可以到google,csdn等地方去查找。
sql语句的大致写法如下:
If pDotCount = 0 Then
sqlString = "select t.需要分割的字段,t.cname from 表名 t where Instr(t.icsn, '.', 1, 1)=0"
Else
sqlString = "select t.需要分割的字段,t.cname from 表名 t where Instr(t.icsn, '.', 1," & pDotCount & ")>0 and Instr(t.icsn, '.', 1, " & (pDotCount + 1) & ")=0 and Instr(t.icsn,'" & pParent & "',1,1)=1"
End If
pDotCount为需要读取的字段中"."的个数
然后通过双击事件获得父节点(即为选中节点),sql语句中pParent,返回属于该父节点的子节点,这样一级一级双击即可实现无限扩展,直至走到数据最后一层为止
检索定位任一节点
主要是在于初始选择节点的定位。此处略去,如有兴趣,可以直接和我联系,互相学习。
MSN:yun15291li@hotmail.com
Email:ygyunguang@yahoo.com.cn
在Segment表中,有三个字段,segmentId、segmentName、segmentRight,
分别表示权限序号(从1开始),模块名,访问权值。其中segmentRight=2的segmentId-1次方,
即
segmentId=1,segmentRight=1 (对应二进制1)
segmentId=2,segmentRight=2(对应二进制10)
segmentId=3,segmentRight=4(对应二进制100)
segmentId=4,segmentRight=8
segmentId=5,segmentRight=16
......
相当于 segmentRight 的第0位代表segmentId=1的模块访问权限,
segmentRight 的第1位代表segmentId=2的模块访问权限,
segmentRight 的第2位代表segmentId=3的模块访问权限,
segmentRight 的第3位代表segmentId=4的模块访问权限,
......
而在部门表里的Segment=上面segmentRight之和,比如,Segment=7,其二进制为0111,
则表示该部门对segmentId是1,2,3的模块具有访问权。换句话说,测试部门表里的Segment
字段的各个二进制位,即可知该部门是否具有对某模块的访问权。
对Segment表进行单独管理,增、删、改操作。
对部门表的管理,增加权限的设置,即显示已有的可操作模块,操作者进行选择,然后
将选中的各模块的 segmentRight 值加起来,赋予部门表里的Segment字段。
访问模块的权限判断流程如下:
用户点击某模块-->从Segment表中通过segmentName(模块名)取出该模块的segmentRight值,
同时从部门表中取出该部门的segment值
-->将segment值和segmentRight值进行“位与”操作,即 segment & segmentRight,
-->如果“位与”的结果等于segmentRight,则该部门具有操作该模块的权限,
使用户进入该模块的操作。
-->如果“位与”的结果等于0,则拒绝该用户进入该模块的操作。
相关代码以及讨论者请按如下方式联系:
MSN:yun15291li@hotmail.com
Email:ygyunguang@yahoo.com.cn