opcenter camstar ID生成规则

1.找到对应的CDO  16进制
select * from CDODEFINITION where cdoname ='Employee'

id前6位 位16进制的CDO type ID,不够6位字符串的前面补0

Employee   000474
2.找到CDO  下一个ID的值
select * from InstanceIDCount where CDODEFID=1140  对应的cdodefid

 

 

 

ClientInstanceID 为CDO 用过的最大的ID (16进制)
272d    10029
转换为10进制加上递增数量1,再转换为16进制的16位字符串保存
272e   10030
3.找到 DBIdentifier
select * from  DBIdentifier
如果有数据则获取 dbidentifie r的值 ,没有则为0

 

8000000000   549755813888
新的ID的值=cdodefid(16转10)+1+ dbidentifier (16转10),再转换为10位的16进制
10030+549755813888=549755823918  转换为16进制     800000272E
16进制的CDOID+新的ID的值
0004e2800000272e

系统每次都会一次性拿25个ID缓存,所以InstanceIDCount表的值每次都会递增25,系统用完ID后再更新,如果server重启 缓存失效,系统会从最新的数据上递增,第一次从第二个ID开始

 

posted @ 2022-12-14 20:00  悳鎭  阅读(252)  评论(0编辑  收藏  举报