以文本方式查看主题 - 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=6772) |
-- 作者:shixia -- 发布时间:2010/4/23 20:00:00 -- _SortKey 值如何不重复 我用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编辑过]
|
-- 作者:程兴刚 -- 发布时间:2010/4/23 20:10:00 -- 由于后来增加了插入行功能,估计导致了Tables("表A").addnew()出现bug,因为Tables("表A").addnew()无法事先判断没有加载的行,而导致_SortKey列在table新增的行和未加载的行的值重复。 建议贺老师改进,_SortKeytable生成值直接到后台比较,按需输入值。 |
-- 作者:mr725 -- 发布时间:2010/4/23 20:10:00 -- 我测试都是递增的,没有重复的_SortKey值,再说,_SortKey也不可能出现重复值吧。 不好意思我时在内部表测试的。 [此贴子已经被作者于2010-4-23 20:11:56编辑过]
|
-- 作者:程兴刚 -- 发布时间:2010/4/23 20:14:00 -- 只有部分加载才会出现。 |
-- 作者:shixia -- 发布时间:2010/4/23 20:21:00 -- 应该算是一个bug,请狐爸看看 |
-- 作者:blackzhu -- 发布时间:2010/4/24 7:14:00 -- 以下是引用程兴刚在2010-4-23 20:14:00的发言:
只有部分加载才会出现。 哦,怪不得呢,昨日我新增行没有按我的意思增,原来是加载数据再新增会有bug. |
-- 作者:狐狸爸爸 -- 发布时间:2010/4/26 17:52:00 -- 我看看怎么回事 |
-- 作者:mr725 -- 发布时间:2010/4/26 18:37:00 -- 应该将加载进来的最大_SortKey值,和数据源中最大的_SortKey值比较,增加行时取两者更大的值+1。 另外,如果经过排序后,在当前行插入行时,刚好碰上上一行是两者最大值时(或者当前行和上一行的_SortKey不是连续的),不知插入的行的_SortKey值怎么来确定了··· |
-- 作者:狐狸爸爸 -- 发布时间:2010/4/26 20:35:00 -- 下次不会这样了 |
-- 作者:shixia -- 发布时间:2010/6/15 10:29:00 -- 狐爸,这个问题好象还没有解决好哦 |