以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]DataRowAdded代码问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172217) |
-- 作者:张松波 -- 发布时间:2021/9/29 23:22:00 -- [求助]DataRowAdded代码问题 老师有个疑问请教一下,案例如下: 创建了一个外部表,表名为:A,表A里有一列名称ID的列(意图为自增列增量为1,从1开始) 我在表A的DataRowAdded事件里写了如下代码 e.DataRow("ID") = e.DataTable.SQLCompute("Max(ID)") + 1 然后再在Tables(“A”)里 Addnew(),然后执行 CurrentTable.Current.DataRow.Save() 而且确保没有漏保存。 现在问题出现了: ID是在增加的,但是中间却有重复的值。按道理不应该啊。
|
-- 作者:有点蓝 -- 发布时间:2021/9/30 8:46:00 -- 如果并发情况下,可能会出现重复的。 还不如直接到数据库设置为自增的:http://www.foxtable.com/webhelp/topics/1807.htm
|
-- 作者:张松波 -- 发布时间:2021/9/30 10:35:00 -- 老师 没有并发就是我一个人在测试,连续加个好几条数据就会有重复的了,所以难道是SQLCOMPUTE有错误? 我做了个ID列 是用来排序的按照创建顺序先后排序,现在改成用table的_indentify列排序了,没有问题,就是怕我要是自增人员编号的时候 怕也这样就麻烦了(全部人员信息加载到datatable里测试过没有问题),用SQLLOAD分页加载我再测试一下。
[此贴子已经被作者于2021/9/30 10:37:58编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/9/30 10:47:00 -- SQLCompute只获取后台的数据,如果有重复,肯定是没有保存 DataRowAdded事件 e.DataRow("ID") = e.DataTable.SQLCompute("Max(ID)") + 1 e.DataRow.save
|