以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  重大问题:外部数据源sortkey列会有重复  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42785)

--  作者:万通
--  发布时间:2013/11/21 21:48:00
--  重大问题:外部数据源sortkey列会有重复
重大问题:外部数据源时,新增行时sortkey列会有重复

已上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:外部数据源,新增行时sortkey列有重复.zip

开发版格式的测试如下:

--  作者:有点甜
--  发布时间:2013/11/21 21:52:00
--  
 这个不奇怪。多人同时新增行的时候,或者只加载部分数据的时候,会有这个问题。

 _sortkey只是用于排序,没有其它用途,所以无需介怀。

--  作者:万通
--  发布时间:2013/11/21 21:55:00
--  
如果这样的话,后续有分类,且更新流水帐时就出错。
--  作者:有点甜
--  发布时间:2013/11/21 22:05:00
--  
 你可以根据实际情况重置_sortkey的值,跟_Identify同步就行了。把_Identify的值赋给_sortkey。

 或者考虑用_Identify代替_sortkey的功能。

--  作者:万通
--  发布时间:2013/11/21 22:13:00
--  
以下是引用有点甜在2013-11-21 22:05:00的发言:
 你可以根据实际情况重置_sortkey的值,跟_Identify同步就行了。把_Identify的值赋给_sortkey。

 或者考虑用_Identify代替_sortkey的功能。

1、不是主键的问题 
2、就是一个人操作时,sortkey列也会出现重复值的。
3、只要是外部数据源,sortkey列就会出现重复值,但内部数据源时就不会出现。
4、再加上有时上下移动行,
这样,后续要做有分类的流水帐更新,就没办法解决了

--  作者:程兴刚
--  发布时间:2013/11/21 23:01:00
--  
无所谓,sortkey列重复,排序时相同的不会重排,也就是按添加顺序排先后,该列并不禁止重复,只有您移动了某一行之后,该值才会发生变化,改不改没有意义!
--  作者:程兴刚
--  发布时间:2013/11/21 23:04:00
--  
以下是引用万通在2013-11-21 22:13:00的发言:
以下是引用有点甜在2013-11-21 22:05:00的发言:
……
这样,后续要做有分类的流水帐更新,就没办法解决了

既然是流水账,就没有必要移动_sortkey列并擅自排序,否则,您这“流水”就会变为一潭“浑水”,考虑用父子表,父表是分类(分类禁止重复),子表是按顺序的流水明细。


--  作者:程兴刚
--  发布时间:2013/11/21 23:05:00
--  
以下是引用有点甜在2013-11-21 22:05:00的发言:
 
……
 或者考虑用_Identify代替_sortkey的功能。

不能用_Identify列赋值给_sortkey,也不能代替!


--  作者:有点酸
--  发布时间:2013/11/22 8:32:00
--  

定期重置SortKey列:

 

Dim cnt As Integer
For Each dr As DataRow In DataTables("表A").Select("","_SortKey")
    dr.BaseRow("_SortKey") = cnt
    cnt = cnt + 1
Next


--  作者:atmetmicoo
--  发布时间:2013/11/22 9:32:00
--  
以下是引用程兴刚在2013-11-21 23:05:00的发言:

不能用_Identify列赋值给_sortkey,也不能代替!

程老师,我就是一直这么做的,会有什么弊端吗?