有谁知道datawindow的函数update()的工作原理是什么?高分求救!,分现在不够等liulee给我了再加分

tiantianpb 2002-01-17 01:35:18
急急急!,谢谢回复,不知道的说句话也好!
...全文
116 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
billxia 2002-07-20
  • 打赏
  • 举报
回复
这里面执行的东西多了,你问这个干嘛?
qdwangzh 2002-07-19
  • 打赏
  • 举报
回复
据我理解,应该是这样的:
pb中有四个缓冲区:
primary,deleted,filter和original
update() 根据primary,deleted和original缓冲区中的内容产生相应的delete
,insert和update语句。
其中,original缓冲区中的内容是retrieve时,从数据库中取出的值,不能进行修改,但能用getitem系列函数获得值。
当update()执行时,pb将primary缓冲区中的数据和deleted、original缓冲区中的数据相比较,如果在orginal缓冲区中有,则生成update语句,若在delete缓冲区中有则生成delete语句,若orginal缓冲区中没有,则生成insert语句。新加记录(insertrow),若没进行update,立即删除(deleterow),则该记录不在任何缓冲区中
update属性中的where clause和 key modification,已经有很多这方面的资料了。
tiantianpb 2002-01-17
  • 打赏
  • 举报
回复
我的想法是如果查找到符合当前条件的记录,只更新这条记录,多表更新的我会,只是我写的一个窗口是通用型用常规的多表更新的方法不行!
Distance_Man 2002-01-17
  • 打赏
  • 举报
回复
其实这是一个多表跟新问题!
主要方法是在update()前通过修改dw的语法达到逐个更新的目的.
具体方法有些书上会有,或者看看以前的铁自!
fallstone 2002-01-17
  • 打赏
  • 举报
回复
听课,现在还用不到修改系统函数(实际上是不会用~~~)
tiantianpb 2002-01-17
  • 打赏
  • 举报
回复
如果datawindow建立时的多表中只选择个一个表的主键,而另一个表的相关的字段没有选择,如何update,现在想改写一下,datawindow的update()函数,如何办?
wzyun 2002-01-17
  • 打赏
  • 举报
回复
状态为NewModified,生成Insert
DataModifed,则根据你的updadte属性相应生成
delete buffer的行状态为New!或者NewModified,不删除
其余则delete
keani 2002-01-17
  • 打赏
  • 举报
回复
同意taiheoyq(taiheoyq),在没有进行物理操作之前,所有的字段有状态notmodified!,或者datamodified!
taiheoyq 2002-01-17
  • 打赏
  • 举报
回复
运行update()函数时,数据窗口根据缓冲区中字段和记录的状态标志实际产生sql指令。
会产生update、insert、delete三种sql语句。
tiantianpb 2002-01-17
  • 打赏
  • 举报
回复
如果是多个表它自动生成update或delete(insert)sql语句的规则是什么?
liyx326 2002-01-17
  • 打赏
  • 举报
回复
一种是先delete 再update,另一种是直接update.
实际上都是执行的sql语句,无论数据窗口做什么操作最后都转换成sql语句。
946 2002-01-17
  • 打赏
  • 举报
回复
好象是先delete然后再insert

611

社区成员

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

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