高分解答问题

playboyhaha 2002-02-24 03:10:07
数据窗口在保存是出现数据错误
Row changed between retrieve and update.
No changes made to database.
UPDATE tab_hmz SET Fcrysf = {ts '2002-02-24 12:12:00.000000'} WHERE Cz = 10010 AND Hccz = 'C ' AND Hcch = 5 AND Ddfx IS NULL AND Ddcc = '231 ' AND Ddyrsf = {ts '2002-02-23 01:00:00.000000'} AND Dryrsf IS NULL AND Zywyrsf IS NULL AND Zxzx IS NULL AND Bzbh = 8 AND Fcfx = 1 AND Fccc = '888 ' AND Fcrysf IS NULL AND Zyzl IS NULL AND Fyyc_zryrsf IS NULL AND Fyyc_zcyrsf IS NULL AND Fyyc_tlsf IS NULL AND Js IS NULL AND Hwmc = 4000 AND Drzxyrsf IS NULL AND Zyxzywyrsf IS NULL AND Zyzl_new = 1

请问问题出现在那里,该如何解决。
保存按扭的时间如下:
int rtncode,rtn
// 数据更新

rtn = tab_1.tabpage_2.dw_5.Update()

IF rtn = 1 AND SQLCA.SQLNRows > 0 THEN

COMMIT USING SQLCA;
ELSE
ROLLBACK USING SQLCA;
return
END IF

this.enabled = false
cb_1.enabled = false
cb_2.enabled = false
cb_3.enabled = false
cb_4.enabled = false
dw_5.postevent("ue_protect")
tab_1.tabpage_2.dw_5.retrieve(gi_station,idt_workday_start,idt_workday_end)
...全文
60 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengkyf001 2002-02-26
  • 打赏
  • 举报
回复
肯定是你在修改数据库记录时,此记录已经被修改一遍了。
matian 2002-02-25
  • 打赏
  • 举报
回复
问题出在表里,自己去看看吧,还有属性里,
lesni 2002-02-25
  • 打赏
  • 举报
回复
可以在提交时采用SQL语句方式:Update ... Set ... Where ...;
看起来麻烦,其实一样的,只是编代码时写一遍,而且不用修改表。
pbsql 2002-02-25
  • 打赏
  • 举报
回复
不用多说,加上主键
nixinyi 2002-02-25
  • 打赏
  • 举报
回复
设置update属性时,where clause for update/delete你多半选了key and updateable columns。这样在datawindow.update产生相应update的sql语句时会把所有可被update的列都作为where条件加。
如果你确认在datawindow.retrieve后update前,这些数据在后台数据库的确没有被改动过,那么上述where clause for update/delete选项改用key and modified columns(采用这种update方式时,所产生sql语句where子句中仅添加主键列名和被修改过数据的列)或 key columns (采用这种update方式时,所产生sql语句where子句中仅添加主键列名,在多用户操作环境下,容易丢失数据。)

另外,一个表最好还是加上主键。
llitcwl 2002-02-24
  • 打赏
  • 举报
回复
选用所有列就容易出现上面的问题,还是建议加上主键,这是一个习惯的问题。
lyxinfo 2002-02-24
  • 打赏
  • 举报
回复
一般情况下最好使用use update,啊,没有主键?那就选用所有列吧。
playboyhaha 2002-02-24
  • 打赏
  • 举报
回复
我更新的这个表上没有主键。update的哪个属性需要修改啊??是修改为use update还是修改为use delete then insert.
我需要保持这个表中原始数据的原始顺序。
playboyhaha 2002-02-24
  • 打赏
  • 举报
回复
我更新的这个表上没有主键。update的哪个属性需要修改啊??是修改为use update还是修改为use delete then insert.
我需要保持这个表中原始数据的原始顺序。
llitcwl 2002-02-24
  • 打赏
  • 举报
回复
不是这的问题,是其他地方修改数据库。
将UPDATE属性改成主键试试,这样DW处理时只判断主键是否被修改

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧