update(true,false) 和 resetupdate 用法

xkp1018 2011-01-27 10:12:03
求高手解答,update(true,false) 和 resetupdate 具体用法,
看了帮助文档,但还是有点不太明了,希望高手详细解释下用法
...全文
1177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
newease 2011-01-27
  • 打赏
  • 举报
回复
下面的代码更新两个数据窗口对象
int rtncode

CONNECT USING SQLCA;
dw_cust.SetTransObject(SQLCA)
dw_sales.SetTransObject(SQLCA)
rtncode = dw_cust.Update(TRUE, FALSE)
IF rtncode = 1 THEN
rtncode = dw_sales.Update(TRUE, FALSE)
IF rtncode = 1 THEN
//两个数据窗口都更新成功后清除更新标志并提
dw_cust.ResetUpdate()
dw_sales.ResetUpdate()
COMMIT USING SQLCA;
ELSE
ROLLBACK USING SQLCA; // 第二个数据窗口更新失败时回滚事务
END IF
END IF
xkp1018 2011-01-27
  • 打赏
  • 举报
回复
谢谢 加个具体的例子来讲解下更好
newease 2011-01-27
  • 打赏
  • 举报
回复
我认为帮助文档已经说得比较清楚了

ResetUpdate()
功能 清除数据窗口控件主缓冲区 过滤缓冲区的更新标志并清空删除缓冲区
语法 dwcontrol.ResetUpdate ( )
参数 dwcontrol 数据窗口控件名
返回值 Integer 函数执行成功时返回1 发生错误时返回-1 如果 dwcontrol的值为NULL 则 ResetUpdate()函数返回 NULL
用法 当数据窗口中修改行 插入行 删除行后 相应行的更新标志就会自动设置Update()函数将利用这些更新标志来修改数据库 缺省情况下 执行了 Update()函数后 该
函数会自动清除这些更新标志 但是 如果想在一个事务中更新多个数据窗口 那么应用程序可以在更新每个数据窗口时都不清除更新标志 当所有的数据窗口更新都成功完成
后 对每个数据窗口调用 ResetUpdate()函数清除更新标志 如果某个数据窗口的更新失败时 应用程序可以保留更新状态 提醒用户更正错误 之后重新更新数据窗口
使用数据窗口控件的对象函数 GetItemStatus()可以找到哪些行标志为更新状态 如果某行在删除缓冲区中 或该行虽然在主缓冲区或过滤缓冲区 但其具有 NewModified!或
DataModified!的状态 那么该行的更新标志被设置 当清除了更新标志之后 主缓冲区或过滤缓冲区中的行具有 NotModified!或 New!状态 并且删除缓冲区被清空



Update()
功能 把数据窗口控件中所有数据修改 插入 删除 修改等 传送到数据库 从而更新数据库中的数据 Update()函数在更新数据库之前会调用 AcceptText()函数把 漂浮
在当前行/列上的编辑框中的内容放入到数据窗口控件的缓冲区中
语法 dwcontrol.Update ( { accept {, resetflag } } )
参数 dwcontrol 数据窗口控件名
accept 可选项 boolean类型 指定数据窗口控件在更新数据库之前是否自动
执行 AcceptText()的功能 把编辑框中的内容放置到缓冲区中 有效取值为
TRUE 缺省值 执行 AcceptText()函数的功能 如果数据没有通
过 有效性验证 那么数据更新过程被取消
FALSE 不执行 AcceptText()函数的功能
resetflag 可选项 boolean 类型 指明更新数据库后是否自动复位更新标志
有效取值为
TRUE 缺省值 复位更新标志
FALSE 不复位更新标志

611

社区成员

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

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