什么是ROWID和RECID在progress.Can中我们用RECID而不是ROWID.what是它们之间的区别吗?
发布于 2009-05-04 23:47:41
RECID和ROWID都是指向数据库中特定记录的唯一指针。
两者或多或少都是指向数据库本身的物理指针,但在底层平台上没有对等的非OpenEdge表除外。在这些情况下,它可能由构成主键的值组成。
RECID是10.1A之前的32位整数,当数据库是OpenEdge数据库并且只有一个区域时,RECID就很好用。从10.1B开始,它们被升级到64位整数。
在v6中添加了连接到非OpenEdge数据库的容量,在v8中添加了容量以创建具有多个存储区域的OpenEdge数据库。在这一点上,RECID不足以在所有情况下唯一地寻址表中的所有记录。
因此ROWID结构诞生了。它的实际架构取决于底层数据库的类型,但它不受整数的限制。
除了操作OpenEdge数据库元模式的代码之外,文档中对that RECIDs should not be used going forward的说明非常清楚。
发布于 2009-02-27 16:10:34
RECID已被弃用,现在有几个版本。ROWID是它的替代品。我知道它实际返回的是包含您的记录的DB块的物理地址。在内存中,当他们想要支持来自4GL的不同DB引擎时,他们引入了ROWID,这意味着ROWID中有比RECID更多的东西。
我会远离RECID,你可能会在短期内摆脱它,但你给自己带来了一个潜在的问题,你可以完全避免。
https://stackoverflow.com/questions/559730
复制相似问题