怎么能够让数据窗口deleterow()只是在窗口中显示删除不影响到数据库?(在线等待)

我的数据窗口有问题,用deleterow()如果删除好多行然后再update()就会在本程序中怎么都显示正确删除但是关闭程序就会发现并没有被删除,后来小弟自做聪明想了一个办法,就是在脚本中删除后台数据库,然后在数据窗口中用deleterow()来将窗口上的一行删除,但是这时如果再对数据窗口做比如insertrow()的操作然后再次update()就会发现不能update报错database change between retrieve and update nochange made to database 请问如何才能达到再次update()也可以正确执行?
[284 byte] By [ha_y-天之恒] at [2008-5-29]
# 1
设置auotcommit=false
update()后要commit,应该没有问题的
zjcxx-云啸 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 2
我可是用了deleterow()啊,而且还用了后台删除啊
ha_y-天之恒 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 3
deleterow()并不是真正的删除,
只是将数据窗口主缓冲中的记录移到被删除的缓冲中去!
而想把改动反映到数据库中,你必须commit一次,这样才真正的写库!
zjcxx-云啸 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 4
看来你没有看懂我的意思,我选中一行,根据这行的标志用sql语句删除了一行,同时用了deletrow()将它从数据窗口中去掉,这样用户就以为是删掉了啊,但是给我自己造成麻烦就是不能再次update(),因为deleterow()在数据窗口中写了sql语句了,现在的解决方法时从delete缓冲区中把要删除的行去掉就不会搞到再次delete了阿其实就是加了一句,
dw_1.RowsDiscard(1, dw_1.DeletedCount(), Delete!),
谢谢捧场,新年快乐啊:)给分给分,再次捧场啊
ha_y-天之恒 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 5
问题解决怎么不能给分那
ha_y-天之恒 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 6
不好意思,不会结贴:)
ha_y-天之恒 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 7
呵呵,没有关系!
其实我也不会结帐!
是不是就是给分啊?
zjcxx-云啸 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 8
对啊,怎么给你分?
ha_y-天之恒 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 9
噢!在进来的时候贴子最右边是一个管理!点击进来就可以了!
zjcxx-云啸 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 10
你的意思是用sql delete又用了deleterow是不是?
只deleterow再update不是可以吗?
danmyw-断月无痕 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...
# 11
是啊,就是说数据窗口有问题喽,才这么麻烦的,大家新年好,谢谢捧场,下次继续捧场啊
ha_y-天之恒 at 2007-10-24 > top of Msdn China Tech,PowerBuilder,数据库相关...