数据窗口中缓冲区的问题

topfistcn 2004-03-30 03:42:07
我的目的是把用程序动态生成的数据窗口中的数据删除后由删除缓冲区恢复到主缓冲区,删除用的是dw_1.deleterow(i),之后检测到dw_1.deletedcount()为0
请问这是为什么啊
...全文
57 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
topfistcn 2004-04-03
  • 打赏
  • 举报
回复
谢谢大家的回复
FanqiTiger 2004-03-31
  • 打赏
  • 举报
回复
所以,你要修改动态数据窗口的Update属性
FanqiTiger 2004-03-31
  • 打赏
  • 举报
回复
DeleteRow()函数从数据窗口主缓冲区中删除指定的行。如果数据窗口不可更新,则被删行从系统中清除。如果数据窗口可以更新,则被删行从数据窗口的主缓冲区移动到删除缓冲区。PowerBuilder根据删除缓冲区的内容构造删除数据库表中数据的SQL DELETE语句。删除了数据窗口中的行之后,数据库中的数据并没有变动,只有在应用程序执行的数据窗口控件的Update()函数之后,数据库中的相应数据才会被删除。数据窗口控件的当前行是得到输入焦点的行,当用户通过操作数据窗口控件的滚动条移动显示的数据时,当前行并不改变。
sun1976 2004-03-31
  • 打赏
  • 举报
回复
retrieve是在窗口初始化的时候进行的
用程序动态生成的数据窗口中的数据

=====================================
你动态生成数据窗口的时候就把窗口初始化时retrieve的东西全放弃了
跟没retrieve一样

在你动态生成数据窗口以后和delete之前的这个过程中:
retrieve过没有?
update过没有?
你对retrieve()和update()的结果删除才有效
要是本来就是空的的数据窗口,insertrow进去几行,在删掉是没有用的
必须是删除本来的数据才能管事
feixianzhi 2004-03-31
  • 打赏
  • 举报
回复
如果i没有超出范围应该是没有错误的!
xyzliuin 2004-03-31
  • 打赏
  • 举报
回复
可能你的i是个无效值
lzheng2001 2004-03-31
  • 打赏
  • 举报
回复
DW的删除缓冲区的目的: 当你执行UPDATE()时,数据窗口根据删除缓冲区的记录生成DELETE SQL语句==>因而,如果你删除的行的Itemstatus = new! or newmodified! 那么DW将不把数据放进删除缓冲区,所以dw_1.deletedcount()为0.从而使数据窗口UPDATE()时不生成DELETE语句!!!
结论:
如果删除的行的Itemstatus = new! or newmodified!,那么DW将不把数据放进删除缓冲区;
如果删除的行的Itemstatus = notmodified! or datamodified!,则把数据放进删除缓冲区,并DeleteCount加1

这是我以前试验的结论,如有错误希望大家指教!
wiselyjs 2004-03-31
  • 打赏
  • 举报
回复
看看dw_1.deleterow(i)的返回值

klbt 2004-03-30
  • 打赏
  • 举报
回复
可能是dw_1.deleterow(i)有问题,请贴出删除语句
topfistcn 2004-03-30
  • 打赏
  • 举报
回复
retrieve是在窗口初始化的时候进行的
liujiaqiang 2004-03-30
  • 打赏
  • 举报
回复
楼主请搞清楚你的操作方式。
sun1976 2004-03-30
  • 打赏
  • 举报
回复
retrieve过没有?
update过没有?
你对retrieve()和update()的结果删除才有效
要是本来就是空的的数据窗口,insertrow进去几行,在删掉是没有用的
必须是删除本来的数据才能管事
topfistcn 2004-03-30
  • 打赏
  • 举报
回复
没有提交的,数据在数据库中还是存在的
sincerity 2004-03-30
  • 打赏
  • 举报
回复
提交了吗?

609

社区成员

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

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