根据帮助《网络环境下的复杂编号》这章修改
很多人要求再添加的时候获取临时编号,保存的时候再更新正式编号。我觉得纯属浪费时间,我设计都是在正式保存后才生成编号。
理由:既然最终要替换或者可能会被撤销新增行,试问谁会去用到一个不可能存在的编号?既然如此,何必生成那?这样就节约了很多代码和判断了
至于断号问题,如果你要求非常高的话,在程序运行出错的情况下,还是会出现的,你需要全程使用存储过程并锁定该编号行。
当然还是有其它办法进行补救的,比如你插入已知的断号编号即可解决。
编号只是个编号,只有当需要被使用的时候才需要存在(比如关联,查询等),否则的话,可以不需要编号,_Identify已经足够了。
如果需要当关联使用,千万不要使用_Identify作为关联列,当哪一天你要迁移数据或者备份表格的时候,你会发现,那是个噩梦。
如果需要日期型编号的,要用到convert函数,按照具体要求自己修改吧。权当抛砖引玉。
以下内容只有回复后才可以浏览
[此贴子已经被作者于2014-12-19 16:09:47编辑过]
jspta老师,你这个没有补号功能,能否能看下 这个[分享][求助]采用存储过程完成复杂编号问题! http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=61788&page=2
还没有找到好的方法解决重号
[此贴子已经被作者于2014-12-19 16:50:14编辑过]
以下是引用jnletao在2014-12-19 16:50:00的发言:
jspta老师,你这个没有补号功能,能否能看下 这个[分享][求助]采用存储过程完成复杂编号问题! http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=61788&page=2
还没有找到好的方法解决重号
这个方法获取的ID,不会重号的,除非极大量的并发可能会出现。
我在开头写了,你保存的时候再获取ID,断号的几率就基本上不会有了,除了程序出错。如果需要删除行,你这个时候可以把编号提取保存,然后再使用。或者仅仅是标记删除即可,也不会出现断号问题。
因为我没有补号的需求,所以这个功能没有用过,如果是单一的序列编号(类似我写的),比较好实现断号的查找,复杂点的就麻烦了。
[此贴子已经被作者于2014-12-19 16:50:14编辑过]