什么是 ROWID 和 RECID 实际上正在进行中。我们可以使用 RECID 代替 ROWID。它们之间的区别是什么?

最佳答案

RECIDROWID 都是指向数据库中特定记录的唯一指针。

两者或多或少都是指向数据库本身的物理指针,除了底层平台上没有等效项的非 OpenEdge 表。在这些情况下,它可能由构成主键的值组成。

RECID 是高达 10.1A 的 32 位整数,当数据库是 OpenEdge 数据库并且只有一个区域时很好。从 10.1B 开始,它们升级为 64 位整数。

在 v6 中增加了连接到非 OpenEdge 数据库的能力,在 v8 中增加了创建多个存储区域的 OpenEdge 数据库的能力。那时,RECID 不足以在所有情况下唯一地处理表中的所有记录。

于是 ROWID 结构诞生了。它的实际架构取决于底层数据库的类型,但它不受整数的限制。

该文档在说明 that RECIDs should not be used going forward 方面相当清楚,但操作 OpenEdge 数据库元模式的代码除外。

关于progress-4gl - ROWID 和 RECID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/559730/

10-13 05:43