9.DataWindow的数据缓冲区.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.DataWindow的数据缓冲区

9. DataWindow的数据缓冲区 ---- DATAWINDOW 的 四 个 缓 站 区 ---- PowerBuilder 中,DataWindow 是 用 户 前 端 用 来 存 储、 操 纵 数 据 的 对 象。 在每 一 个Data Window 对 中 有4 个 二 维 表 作 为 数 据 缓 冲 区, 用来 存 储 查 询 到 的 数 据。 用 户 在DataWindow 中 对 数 据 处 理 系统 部 的 操 作 实 际 上 都 是 将 数 据 在 这 几 个 缓 冲 区 中进 行 的 修 改 和 移 动, 最 后 在 用 户 提 交 数 据 库 时, 统 根据 这 四 个 缓 冲 区 中 的 信 息 形 成SQL 的IN-SERT,UPDATE,DELETE 等 语句 。 这 四 个 缓 冲 区 是: ---- Primary Buffer ---- 缓 冲 区 是 存 放 填 充 窗 口 中DataWindow 控 件 中 数 据 的, 调 用DataWindow 的Retrieve() 函 数 InsertRow() 函 数 可 以 将 数 据 填 入 这 个 缓 冲区 中。 当 使 用 有 关DataWindow 删 除 和 过 滤 函 数 时, 应 记 录将 从 这 一 缓 冲 区 中 删 除。 而 在 执 行DataWindow 的Update() 函 数时,PowerBu ilder 将 查 看 一 缓 冲 区 中 的 记 录, 以 形 成SQL INSERT 和UPDATE 语 句。 ---- Delete Buffer ---- 缓 冲 区 保 存 的 是 用DeleteRow() 函 数 从Primary Buffer 中 删 除 的记 录, 执 行Update( ) 函 数 , 系 统 根 据 这 一 缓 冲 区 的 记 录 形成DELETE 语 句。 ---- Filter Buffer ---- 缓 冲 区 存 储 的 是 从Original Buffer 使 用Filter() 函 数 过 滤 到Primary Buffer 中 后 剩 余 的 录。 ---- Original Buffer ---- 缓 冲 区 存 储 的 是DataWindow 最 初 执 行retrieve() 函 数 时 得 到的 全 部 记 录。 当 提 交 数 据 库 时, 据Primary Buffer 生 成 的UPDATE 语 句 和 根 据Delete Buffer 生 成 的DELETE 语 句 都 要 依 据 这 一 冲区 来 构 造 这 些SQL 语 句 中 的Where 子 句。 ----Original Buffer 由PowerBuilder 内 部 维 护,Power-Builder 所 提 的 任 何 函 数 都无 法 改 变 它 的 值, 不 过 通 过PowerBuilder 所 提 供 的GetItem … 系列 的 函 数 可 以 读 DataWindow 最 初 从 数 据 库 中 查 到 的 原 始值。 通 过 这 些 函 数 我 们 可 以 编 程 实 现 所 谓 的Undo 功 , 并 且 得 到 在 使 用 乐 观 锁 时 形 成 提 交 数 据 库 的WHERE 子 句。 ---- 您 当 前 使 用 的DataWindow 没 有 设 置 修 改 的 权 力, 您 将 不 能对Delete 缓 冲 区 和Origin al 缓 冲 行 操 作, 而 且 当 调 用Update() 时 也 将 引 起 系 统 错 误。 ---- 据 缓 冲 区 的 状 态 值 ----Primary Buffer 和Delete Buffer 都 有 行 级 和 列 级 的 状 态 值, 这 状 态 值是 一 个 枚 举 类 型 。 在 提 交 时 由 该 行 的 状 态 值 来 决 定是 否 要 产 生SQL 语 句, 其 中Primary Buffer 产 生 的 是IN-SE RT 和UPDATE 语 句, 而Delete Buffer 产 生 的 是DELETE 语 句。 我 们 GetItemStatus() 函数 和Se tItemStatus() 函 数 可 以 对 这 一 状 态 值 作 操 纵。 这 一 枚举 状 态 有 以 四 种: ---- NotModified! — — — 该 行 或 行 的 值 为 查 询 所 得, 没 有 发生 改 变。 ---- DataModified! — — — 该 行 或 列 的 值 为 查 询 所 得, 发 生 了改 变。 ----

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档