关于dw.update后自增主键自动刷值的问题
情况如下:有个dw,update属性中设置为:where clause -- key columns; key modification -- use update; unique key column 指定为对应的主键;identity column 也指定为对应的主键。该主键在sqlserver数据库中是自增列。
出现在问题如下:
第一次调用保存事件时,主表保存成功,得到的 ll_docid 为1,但后面代码中子表保存失败回滚了,当前窗口不关,用户再次点击保存按钮调用保存事件时,主表保存成功后得到的 ll_docid 仍旧为1,而实际该id为2。
怎么实现 rollback 后,再update时,得到新的自增列 id ?
请求各位高手指教
/////////////////////////////////////////////////////////////
代码如下:ue_save()事件中
l_return = dw_1.update(true,false)
IF ll_return = -1 THEN //主表保存失败回滚
ROLLBACK Using sqlca;
RETURN -1
END IF
ll_docid = dw_1.object.docid[dw_1.getrow()]
for i = 1 to dw_2.rowcount()
dw_2.object.docid[i] = ll_docid
next
l_return = dw_2.update(true,false)
IF ll_return = -1 THEN //子表保存失败回滚
ROLLBACK Using sqlca;
RETURN -1
ELSE
COMMIT;
dw_1.resetupdate()
dw_2.resetupdate()
return 1
END IF
///////////////////////////////////////////////////