Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[讨论] 建议能有一个判断其他用户是否正在执行load中save的方法。

1楼
wcs 发表于:2009/2/4 12:10:00

对于在各个客户端手工输入的数据,在保存时系统是不会重复的,不需要这个方法。

但是对于各个客户端从同一数据源里提取的数据,就可能存在问题了:在某条记录被保存的过程中(未完成),其他客户端调用的 数据填充器 可能认为目标表中还没有这条记录,从而再追加这条记录。 所以要是有一个判断就好办一些了。这样可以解决多人同时数据填充并保存的问题。

2楼
狐狸爸爸 发表于:2009/2/4 12:19:00
如果正在输入的过程呢?
这个解决不了实际问题的。

我今天发的“高级自动编号演示”,其实已经包含了如何在网络下解决冲突的技巧,只是需要借助一个标记表。
3楼
wcs 发表于:2009/2/4 17:01:00

正在输入的过程,系统不是会自动给予不同的主键值吗?我对标记没有另外的特别要求,因为我的数据都提取自其他数据源。

我在想,后台数据库中建一保存标记表,只有一列一行,在进行填充、保存前先给这个地方赋值,保存完了以后再赋值。其他用户根据这个值来判断是否进行填充、保存。

我看这样应是可以的,因为这一个单元格的赋值是一瞬间的,一般不会冲突。

(我的数据填充是从10多万条记录中按条件填充,要用几秒钟的,就是这几秒钟中内多用户操作可能出现重复填充)

你看这样行吗?

[此贴子已经被作者于2009-2-4 17:02:39编辑过]
4楼
狐狸爸爸 发表于:2009/2/4 17:24:00
可以,不过最好用SQL命令赋值,这样更快。
而且最好在SQL的UPDATE命令中加上条件,例如标志列内容为FAlse表示可以更新,设为True表示我正在更新。
如果两个人同时读值,那么都得到False值,也就是可以保存,出现同时保存的问题,所以还需要后续步骤,UPDATE语句加上条件,将标志列内容为False的更新为True,这样就不会出现两个人同时更新成功的问题,只有更新标志列成功的前提下才保存。

我发的高级自动编号演示文件,也是基于这个原理的。
5楼
wcs 发表于:2009/2/4 17:28:00
哈哈

是的,考虑用UPDATE,它的速度是快,以前就领教过了。

共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.