以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [分享]存储过程版-网络环境下的复杂编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61811)

--  作者:jspta
--  发布时间:2014/12/19 16:08:00
--  [分享]存储过程版-网络环境下的复杂编号
根据帮助《网络环境下的复杂编号》这章修改
很多人要求再添加的时候获取临时编号,保存的时候再更新正式编号。我觉得纯属浪费时间,我设计都是在正式保存后才生成编号。
理由:既然最终要替换或者可能会被撤销新增行,试问谁会去用到一个不可能存在的编号?既然如此,何必生成那?这样就节约了很多代码和判断了
至于断号问题,如果你要求非常高的话,在程序运行出错的情况下,还是会出现的,你需要全程使用存储过程并锁定该编号行。
当然还是有其它办法进行补救的,比如你插入已知的断号编号即可解决。
编号只是个编号,只有当需要被使用的时候才需要存在(比如关联,查询等),否则的话,可以不需要编号,_Identify已经足够了。
如果需要当关联使用,千万不要使用_Identify作为关联列,当哪一天你要迁移数据或者备份表格的时候,你会发现,那是个噩梦。
如果需要日期型编号的,要用到convert函数,按照具体要求自己修改吧。权当抛砖引玉。

以下内容只有回复后才可以浏览
[此贴子已经被作者于2014-12-19 16:09:47编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/12/19 16:11:00
--  
楼主是好人,谢谢。

图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/12/19 16:11:00
--  
 好
--  作者:逛逛
--  发布时间:2014/12/19 16:11:00
--  

俺想瞧瞧


--  作者:Bin
--  发布时间:2014/12/19 16:12:00
--  
谢谢分享.
--  作者:程兴刚
--  发布时间:2014/12/19 16:39:00
--  

收藏!


--  作者:jnletao
--  发布时间:2014/12/19 16:41:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:jnletao
--  发布时间:2014/12/19 16:50:00
--  
jspta老师,你这个没有补号功能,能否能看下  这个
[分享][求助]采用存储过程完成复杂编号问题! http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=61788&page=2
还没有找到好的方法解决重号

[此贴子已经被作者于2014-12-19 16:50:14编辑过]

--  作者:飞飞
--  发布时间:2014/12/19 16:52:00
--  
 订单
--  作者:jspta
--  发布时间:2014/12/19 17:07:00
--  
以下是引用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编辑过]