以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 数据库交流 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6) ---- 多用户通过"数据拷贝表"同时往一张表复制数据出错 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=8190) |
||||
-- 作者:reachtone -- 发布时间:2007-5-31 11:00:59 -- 多用户通过"数据拷贝表"同时往一张表复制数据出错 如题,这应怎么解决? 把数据表的游标位置改为“服务器端”也不行。 这是例子:
|
||||
-- 作者:admin -- 发布时间:2007-5-31 11:27:00 -- 把你的项目文件贴上来,我们看一下。 |
||||
-- 作者:reachtone -- 发布时间:2007-5-31 11:54:05 -- 不好帖,因为是在局域网里测试的,需要数据库连接. 可以这样测试:两个用户同时往一张表里拷贝数据就行了。拷贝数据可以有两种方法:一种是用“拷贝数据表构件”,一种是用SQL命令,如insert into .... select * from ....。 不论哪种方法,都会出错。 |
||||
-- 作者:admin -- 发布时间:2007-5-31 13:10:29 -- 还应是与你的命令设置有关,你执行数据拷贝时,按照如下图所示的命令设置一试。 ![]() ![]() 注:ADO查询2是目标数据集。 |
||||
-- 作者:reachtone -- 发布时间:2007-5-31 15:30:05 -- 我没作任何命令设置,只是设置好来源表和目标表,直接用拷贝数据表的方法执行的。 等会我做个例子上来吧,现在在重装系统。 |
||||
-- 作者:admin -- 发布时间:2007-5-31 16:14:03 -- 在拷贝数据表的方法执行前,先执行关闭数据集,再打开。 如第4楼所示。 |
||||
-- 作者:reachtone -- 发布时间:2007-5-31 17:09:11 -- 按您的说法,先关闭,再打开,仍然出错.例子在一楼。 这样操作:同时打开甲乙两个项目,模拟两个用户,先执行甲的“添加数据”,同时在执行乙的“添加数据”,其道理和网络中多人同时添加数据是一样的。 |
||||
-- 作者:admin -- 发布时间:2007-6-1 10:00:20 -- 可能还是你那边的设置问题,以下是我测试的例子,基本上按照你的第一楼思路设置的,在我们这里测试一点问题没有。你可以在你的环境中测试一下。
下载后你要做的操作: 1、解压。 2、把其下的“DataBase”文件夹,复制到服务器下,并设置共享权限,注意要选择“完全按制”。 3、在客户端映射“网络驱动器”为“X”盘。(如果设为其它盘,需修改“测试拷贝.ipd”文件的ADO数据库连接1设置。) 4、执行“测试拷贝.ipd”文件,测试就可以了。 |
||||
-- 作者:admin -- 发布时间:2007-6-1 10:55:39 -- 我又检查了一下你的数据库,目标表中没有“自动编号”字段,这显然是不对的,在C/S模式这种同时多人向一个表中录入数据,必须有“自动编号”字段。 |
||||
-- 作者:reachtone -- 发布时间:2007-6-1 11:42:46 -- 我刚才测试了一下,用一楼的例子给目标表增加“自动编号”字段,确实没问题了。 但后来,我改用两个59484行的源表同时往目标表里拷贝数据,还是会出现同样的错误。通过查看目标表,我发现,以前是第二个用户根本就不能往目标表拷贝数据,而现在是可以拷贝了,只不过在同时拷贝的过程中出错。 当然,刚才测试的例子比较极端,实际应用中应该不会拷贝数万行的数据。 谢谢李老师的热心帮助。。。 |