Foxtable(狐表)用户栏目专家坐堂 → [求助]网络条件下的编号


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

主题:[求助]网络条件下的编号

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


加好友 发短信
等级:九尾狐 帖子:2243 积分:18477 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]网络条件下的编号  发帖心情 Post By:2014/12/14 10:49:00 [只看该作者]

使用场景:局域网使用,用ACCESS做数据库。但多个局域网使用的数据最终要合并到一个数据库里。

这时候,使用_identify来做主键关联各个表显然是不行的,因为合并各个局域网的数据之后,_identify会自动增长,最后数据可能就乱套了。
但如果使用网络环境下的复杂编号,我觉得速度太慢,增加一个单表的数据300行,耗时接近2.5分钟,这个有点难以忍受————如果是导入另一个局域网的使用数据,估计导一天都不一定搞得定(因为表比较多,数据量比较大,很多表会有上万甚至十万行)。

但据程版讲,如果只是用自动编号生成方法,可能导致编号重复。

我做了一个例子,不知道用这种方法能不能既提高速度,又避免编号重复。还请各位狐神指导。


又在论坛上扒了一圈,发现飞飞大侠提供的终极解决方案,可惜不知它怎么用。

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=60863&authorid=0&page=2&star=1
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络条件下的编号.zip


说是三步走,但这些代码应当放在哪里呢?
急求大神指导。

能不能做个实例………………

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/14 10:54:00 [只看该作者]

 跟你的一点关系都没有。

 

 不是跟你说了么,每个局域网的给它赋值一个局域网名。比如局域网1、局域网2、局域网3

 

 Id列,就用 局域网1加上_Identify的值。

 

 那么,最后合并,得到的Id列肯定是不同的啊


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


加好友 发短信
等级:九尾狐 帖子:2243 积分:18477 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/14 11:18:00 [只看该作者]

直接在datarowadding中写成:
e.datarow("ID") = "局域网编号“ & e.datarow("_identify")?

就算是把它放在datacolchanged中也不行啊。也会出现重复的ID

我这样试过了,会出来一个问题:
如果我在表中执行了删除行操作,然后再到ACCESS中执行了“压缩和修复数据库”操作,再来增加数据,就会出现重复的ID啊。就算是同一个PID,也会出现相同的ID

示例中的PID就相当于局域网编号。
这里A表中出现了两行“KKK11”
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:a表中有两行kkk11.zip



难道问题出在再到ACCESS中执行了“压缩和修复数据库”操作这里吗?
[此贴子已经被作者于2014-12-14 11:27:25编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/14 11:38:00 [只看该作者]

1、在DataRowAdded加入代码 e.DataRow.Save

 

2、save之后,才会生成_Identify,然后再给Id列赋值。


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


加好友 发短信
等级:九尾狐 帖子:2243 积分:18477 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/14 12:10:00 [只看该作者]

甜兄再麻烦看一下。现在改了之后,应当可以了。

但做了几次ACCESS的修复和压缩数据库之后,出现一个奇怪的问题,就是A表的ID=kkk484和kkk485,关联的B表明明有数据,为什么不显示呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:为什么关联表的数据不显示呢.zip


[此贴子已经被作者于2014-12-14 12:11:37编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/14 12:15:00 [只看该作者]

因为表B你指加载10行

 

http://www.foxtable.com/help/topics/1813.htm

 


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


加好友 发短信
等级:九尾狐 帖子:2243 积分:18477 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/14 12:21:00 [只看该作者]

晕死。原来如此。疏忽了
[此贴子已经被作者于2014-12-14 12:21:04编辑过]

 回到顶部