我在使用datawindow删除数据时出现……怎么办?


我在使用datawindow删除数据时出现
row changed between retrieve and update
no changes made to database
delete from main where name='h'

我用的删除代码是:
int deleteid
string name

deleteid=dw_1.getRow()
name= dw_1.object.name[dw_1.getRow()]

if messagebox("提示信息:","真的删除"+"'客户名称为:'"+name+"的客户信息么?",Question!,yesno!,2)=2 then
return -1
else

end if

dw_1.deleterow(deleteid)

dw_1.update()
[500 byte] By [hovoy-热月黑天] at [2008-5-24]
# 1
1、看一下DW的update属性有什么问题没
2、到后台数据库里找一下你要删除的数据,看有没有非法数据(where name='h')
3、删除前重新检索一下数据,在找到要删除的行,试试
pawly-pawly at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 2
程序退出后再进入就可以用了,但有时还出现!
hovoy-热月黑天 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 3
可能getrow返回了非法的数据 如果deleteid=0那么就会出错
你试着跟踪deleteid的值,看看是不是会出现0,并且在那时出错
ColdWolf-天边流星 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 4
可能是你把数据检索出来后,有些操作改变了原来的数据(库中的),这样再保存时不匹配,即出现上边提示
pawly-pawly at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 5
因为getrow返回的得是当前行的编号
所以如果当前行没有选定,那么getrow会返回0
这是删除操作就会出错
跟踪一下deleteid,看是不是出现deleteid=0的情况
ColdWolf-天边流星 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 6
可能是DW没有你选中的行,先执行DW得到焦点
然后再删除
# 7
http://www.Codefund.cn/expert/topic/532/532425.xml
qiyao-享受每一天 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 8
不只怎么搞的又好了,我试了好多回都是好的了。没有改程序的条件下。谢谢大家了
hovoy-热月黑天 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...