Foxtable(狐表)用户栏目专家坐堂 → _SortKey 值如何不重复


  共有12781人关注过本帖树形打印复制链接

主题:_SortKey 值如何不重复

帅哥哟,离线,有人找我吗?
shixia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:759 积分:7038 威望:0 精华:1 注册:2008/9/2 20:04:00
_SortKey 值如何不重复  发帖心情 Post By:2010/4/23 20:00:00 [只看该作者]

我用Access外部数据源,表中有_SortKey列,每次加载表时只是按条件部分加载,向表中写数据是用一个窗口,窗口中控件没有与表中列关联,而是在“保存”按钮里写如下代码:

Dim s1 as Date =e.Form.Controls("DateTimePicker1").Value

……

Tables("表A").AddNew()

Dim dr as row =Tables("表A").Current

dr("列一“)=s1
 
……

Tables("表A").Save()

这样写结果是:每次新添一行并保存后,_SortKey值都是一样的。后来我把 Tables("表A").AddNew() 换成Syscmd.Row.AddNew()后_SortKey值又开始递增,不重复了。请问这是什么原因,难道Tables("表A").AddNew() 和Syscmd.Row.AddNew() 功能不相同。
[此贴子已经被作者于2010-4-23 20:01:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40580 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/4/23 20:10:00 [只看该作者]

由于后来增加了插入行功能,估计导致了Tables("表A").addnew()出现bug,因为Tables("表A").addnew()无法事先判断没有加载的行,而导致_SortKey列在table新增的行和未加载的行的值重复。

        建议贺老师改进,_SortKeytable生成值直接到后台比较,按需输入值。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/4/23 20:10:00 [只看该作者]

我测试都是递增的,没有重复的_SortKey值,再说,_SortKey也不可能出现重复值吧。 不好意思我时在内部表测试的。
[此贴子已经被作者于2010-4-23 20:11:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40580 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/4/23 20:14:00 [只看该作者]

只有部分加载才会出现。

 回到顶部
帅哥哟,离线,有人找我吗?
shixia
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:759 积分:7038 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2010/4/23 20:21:00 [只看该作者]

应该算是一个bug,请狐爸看看

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/4/24 7:14:00 [只看该作者]

以下是引用程兴刚在2010-4-23 20:14:00的发言:
只有部分加载才会出现。

哦,怪不得呢,昨日我新增行没有按我的意思增,原来是加载数据再新增会有bug.


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/4/26 17:52:00 [只看该作者]

我看看怎么回事

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/4/26 18:37:00 [只看该作者]

应该将加载进来的最大_SortKey值,和数据源中最大的_SortKey值比较,增加行时取两者更大的值+1。
另外,如果经过排序后,在当前行插入行时,刚好碰上上一行是两者最大值时(或者当前行和上一行的_SortKey不是连续的),不知插入的行的_SortKey值怎么来确定了···

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/4/26 20:35:00 [只看该作者]

下次不会这样了

 回到顶部
帅哥哟,离线,有人找我吗?
shixia
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:759 积分:7038 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2010/6/15 10:29:00 [只看该作者]

狐爸,这个问题好象还没有解决好哦


 回到顶部