创建与数据库表同名的缓冲区

2023-12-26

我在很多地方都遇到过这段代码:

DEFINE BUFFER Customer FOR Customer. 

我有两个问题:

  1. 这样做的目的是什么?为什么创建与表同名的缓冲区是有益的?

  2. 当编写代码访问该表/缓冲区时,Progress 如何知道是直接访问 DB 还是通过缓冲区访问?


1:通常是为了管理缓冲区的范围。

例如,如果您有一个包含多个内部过程的过程,这些内部过程都访问同一个表,那么该表的默认缓冲区最终将作用于顶级过程块。例如 -

procedure p1:
    find first customer no-lock.
end.

procedure p2:
    find last customer no-lock.
end.

最终将客户缓冲区的范围限定为包含过程。如果您试图保持内部程序松散耦合和独立,那么您可能不希望出现这种行为。因此,您需要在每个内部过程中定义一个缓冲区。

当然,定义缓冲区还有其他原因,但是当您看到定义与表同名的缓冲区的代码时,通常与范围有关。

2:它总是通过缓冲区访问DB。每个表都有一个与表同名的默认缓冲区,因此

find first <buffername>.

将查找名为 buffername 的缓冲区,该缓冲区可能是显式定义的缓冲区或隐式默认缓冲区。优先级将转到明确定义的缓冲区(如果存在)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建与数据库表同名的缓冲区 的相关文章

  • 使用 SQL*Loader 更新表中的列

    我编写了一个具有以下查询的 SQL 脚本 查询工作正常 update partner set is seller buyer 1 where id in select id from partner where names in A B C
  • 将字母转换为数字

    我想将字母 A 更改为点 1 将字母 Z 更改为数字 26 然后再次更改为数字 27 字母 AA AB 更改为 28 我该怎么办 我必须使用 开关 吗 我使用java程序 没有对此进行测试 但按照这些思路应该可以工作 public Stri
  • 在 Play 2.0 中设置自定义根 URL

    我有一个 play 应用程序 如果它是 Web 主机的根目录 则可以运行 但是我想将其作为主机的子 URL 加载 That is http example com lt This works fine and i want to move
  • 求助......串口编程

    我想用 python 与我的串口进行通信 我为linux安装了pyserial和uspp 尽管如此 当我运行以下代码时 import serial ser serial Serial dev pts 1 19200 timeout 1 pr
  • 如何改变CSS中的删除线/穿线粗细?

    我正在使用text decoration line through在 CSS 中 但我似乎找不到任何方法来改变线条粗细 而不需要像 hr 或图像叠加 有没有优雅的方法来指定穿线的粗细 现代的解决方案是使用文字装饰厚度 https devel
  • 在 MAMP 上安装 PEAR

    我正在使用 MAMP 进行开发 我一直无法让 PEAR 工作 MAMP 文档和论坛似乎没有答案 在MAMP论坛上提问的人似乎都没有回复 以前我在 MAMP 上开发了系统 并且只使用 PEAR 来处理邮件 所以我让它在服务器上运行一次 而不是
  • 浏览器 JavaScript 是否允许 SIMD 或矢量化操作?

    我想用 JavaScript 编写需要大量数值计算的应用程序 然而 我对客户端 JavaScript 中类似线性代数的高效计算的状态感到非常困惑 似乎有很多方法 但没有明确表明它们已准备就绪 其中大多数似乎对允许计算的向量和矩阵的大小有限制

随机推荐