以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]_Identify 编号问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127567)

--  作者:eauacqua
--  发布时间:2018/11/16 17:29:00
--  [求助]_Identify 编号问题

情况说明:

1)连接的外部数据源,采用的是sql2017版本的,编号直接选取_identify的值进行编号。

2)在编号为0030几号时,突然编号调到1001,后来2001,到4001,

 

在后台数据库看的时候,没有多余的行号

 

请问这是什么原因?

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

--  作者:eauacqua
--  发布时间:2018/11/16 17:32:00
--  
并且编号也不连续
--  作者:有点甜
--  发布时间:2018/11/16 17:47:00
--  

1、编号是不断递增不回头的。比如你新增了100行保存,你又删除了90行,编号不会回到11,而是101。

 

2、你可以换一种方式编号 http://www.foxtable.com/webhelp/scr/2403.htm

 

3、如果需要不断号 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=85293&replyID=590914&skin=1

 


--  作者:eauacqua
--  发布时间:2018/11/16 17:58:00
--  
甜版,我疑惑的是:我中间肯定没有删过千行级别的,最多删过十几行,怎么突然编号由几十行,跳到了上千行呢?
--  作者:有点甜
--  发布时间:2018/11/16 18:06:00
--  
以下是引用eauacqua在2018/11/16 17:58:00的发言:
甜版,我疑惑的是:我中间肯定没有删过千行级别的,最多删过十几行,怎么突然编号由几十行,跳到了上千行呢?

 

加入一列表达式列,把 _Identify 列显示出来看看。


--  作者:有点甜
--  发布时间:2018/11/16 18:07:00
--  
如果 _Identify 列正常,那就是你写的代码有问题,贴出所写代码。
--  作者:eauacqua
--  发布时间:2018/11/16 21:06:00
--  
甜版,代码如下:
e.DataRow.Save()
If e.DataRow.IsNull("农户编码") Then
    Dim bh As  Integer
    bh = e.DataRow("_Identify")
    e.DataRow("农户编码") = "N" & Format(bh,"000000")
    If User.Type = UserTypeEnum.User Then
        e.DataRow("编写人") = User.Name
    End If
End If

此主题相关图片如下:捕获1.png
按此在新窗口浏览图片

--  作者:有点蓝
--  发布时间:2018/11/16 21:17:00
--  
除了有人为的干预,我想不出有其他的可能性。自增编号是数据库自己的功能,和外部程序没有关系的
--  作者:eauacqua
--  发布时间:2018/11/17 8:11:00
--  
收到,感谢蓝版
--  作者:Grandraw
--  发布时间:2019/3/7 8:44:00
--  
这个问题我也碰到。 我敢肯定不是人为的干预。为此我还特地初始化了我的表好几次,然后通过循环的方式自动增加行,加到几百行的时候吧,编号突然就跳到上千。 这个问题一直困惑我。
如果是程序的问题,希望开发者重视起来。