读书人

急一条记录被重复插入几次!该怎么解决

发布时间: 2012-02-29 16:44:10 作者: rapoo

急,一条记录被重复插入几次!
PB10 连接sqlserver2000
表结构:
CREATE TABLE [dbo].[aaa] (
[pkid] [int] IDENTITY (1, 1) NOT NULL ,
[emp_number] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[emp_name] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]

在datawindow中插入记录:
int i_row
i_row = ds.insertrow(0)
ds.setitem(i_rows, "emp_number ", "001 ")
ds.setitem(i_rows, "emp_name ", "张三 ")


....
ds.update()

发现在多用户的环境下如果update时aaa表被其他用户锁定(同样这段程序),这条内容被重复插入几次(插入的次数好像与锁表的时间有关)。

头大呀!!!!!!

请问各位高手,如何解决这个问题?

谢了!

[解决办法]
pkid 设成主键!

就只能保存一条了!
[解决办法]
ds.update()
commit;
[解决办法]
在点击保存按钮时,重新生成pkid的值,再保存到后台。
[解决办法]
可能是锁表的时间过长,用户不停地点击保存按钮。
解决办法:
1)数据库是否可以设置成行级锁
2)点击保存后,按钮变为不可点击,待提交成功后再恢复
[解决办法]
i_row = ds.insertrow(0)
ds.setitem(i_rows, "emp_number ", "001 ")
i_row = ds.insertrow(0)
ds.setitem(i_rows, "emp_name ", "张三 ")

[解决办法]
添加一个ID表,每次新增查找这个表的最大ID然后更新此表,这样,多用户新增就不会出现类似情况了
[解决办法]
添加一个ID表,每次新增查找这个表的最大ID然后更新此表,这样,多用户新增就不会出现类似情况了
----------------------
ok

读书人网 >PB

热点推荐