4

what is ROWID and RECID actually in progress.Can we use the RECID instead of ROWID.what is the diffrrence between them??

4

2 回答 2

10

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

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

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

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

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

文档非常清楚地指出,RECIDs 不应该被使用,除了操作 OpenEdge 数据库元模式的代码。

于 2009-05-04T23:47:40.780 回答
2

RECID 已被弃用,现在有几个版本。ROWID 是它的替代品。我知道它实际返回的是包含您的记录的 DB 块的物理地址。从记忆中,当他们想要支持来自 4GL 的不同数据库引擎(Oracle / SQL server 等)时,他们引入了 ROWID,这意味着 ROWID 中的内容比 RECID 更多。

我会远离 RECID,你可能会在短期内侥幸逃脱,但你给自己带来了一个你可以完全避免的潜在问题。

于 2009-02-27T16:10:33.707 回答