数据窗口insertrow(),deleterow()的问题

ha_y 2002-01-24 02:43:16
不知道大家有没有在数据窗口的更新中遇到这样的问题,就是如果你先用了insertrow(),然后再deleterow(),然后再update(),就会报错error between delete and insert ,no change make to database .如何解决?谢谢
...全文
245 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gong_bao 2002-01-25
  • 打赏
  • 举报
回复

有点迷惑,
刚才我试了一下,没有你说的那种错误发生,

另:你上面说的,我认为没有必要。
ha_y 2002-01-25
  • 打赏
  • 举报
回复
to:hhytsoft(雨中独行) 我想问的是是不是说每写一句deleterow()或者insertrow()都必须先进行update(),就象这样
dw_1.insertrow()
if dw_1.update(true,false)=1 then
dw_1.resetupdate()
commit using sqlca;
else
rollback using sqlca;
end if

dw_1.deleterow()
if dw_1.update(true,false)=1 then
dw_1.resetupdate()
commit using sqlca;
else
rollback using sqlca;
end if

是不是说不能写成这样
dw_1.insertrow()
dw_1.deleterow()
if dw_1.update(true,false)=1 then
dw_1.resetupdate()
commit using sqlca;
else
rollback using sqlca;
end if

pandix 2002-01-24
  • 打赏
  • 举报
回复
试一试更改一下数据窗口的Update属性。
「已注销」 2002-01-24
  • 打赏
  • 举报
回复
改变数据窗口的update条件(第三种key and modified columns),另外更新语句如下:
if dw_1.update(true,false)=1 then
dw_1.resetupdate()
commit using sqlca;
else
rollback using sqlca;
end if

另:dw_1.modifiedcount()+dw_1.deletedcount()>0是指数据窗口有删除或改变的数据的话
然后执行更新语句。你可以得到每各字段(若:3行4列)的当前状态.
yacc80 2002-01-24
  • 打赏
  • 举报
回复
你试着改一下数窗的update properties中的where clause for update/delete项,有时会解决问题。
programbcb 2002-01-24
  • 打赏
  • 举报
回复
不应该的,如果insertrow()后行的状态为new!,如果修改过则行的状态newmodified!,再delete()则数据窗口不会产生任何SQL语句,一定是你哪里弄错了。
ha_y 2002-01-24
  • 打赏
  • 举报
回复
请问dw_1.modifiedcount()+dw_1.deletedcount()>0着一句是什么道理?
blazingstar 2002-01-24
  • 打赏
  • 举报
回复
if dw_1.modifiedcount()+dw_1.deletedcount()>0 then
if dw_1.update()=1 then
commit using sqlca;
else
rollback using sqlca;
end if
end if

401

社区成员

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

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