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开始
标签:10,进制,opcenter,16,CDO,camstar,ID,select From: https://www.cnblogs.com/lidezhen/p/16983391.html