发信人: dega.p()
整理人: kamkam(2002-05-01 23:37:37), 站内信件
|
Note ID 剖析(一)
翻译:丁香书
所有:http://dingxiang.163.net
本章节详细描述了 note IDs,并且解释了 Domino or Notes 任务 (复制等)使用 note ID 的组件时有什么不同以及 API 程序怎么使用他们.
note ID 包括如下部分:
UNID (Universal Note ID) - 唯一地确定了文档(note), 不管它(note)是位 于何处或所处何时.另一方面, 每个文档(note)的复本拥有相同的 UNID, 并且 UNID 不会因为文档的更改而变化.
OID (Originator ID) - 确定文档(note)的特殊的修订版本,不管它(note)位 于何处,也就是说,每个文档(note)的复本拥有相同的 OID, 但是当文档(n ote)更改时OID也会随之修改.
GNID (Global Note ID) - 确定一个特殊数据库中的一个特殊文档(note),GN ID 不会随文档(note)的改变而变化。一个文档(note)复本的GNID可能会不同 ,因为毕竟他们在数据库中的位置可能不同。
NID (Note ID) - 确定给定数据库中的一个特殊的文档(note)。NID 不包含数 据库的信息(只在数据库内定位有效:译者注),并且文档(note)修改时不会 变化。
IID (Instance ID) - 确定一个给定数据库中的一个文档(note)的特殊修订版 本,IID 不包含数据库信息,文档(note)修改时,IID会变化。
GIID (Global Instance ID) - 确定一个特殊数据库中的一个文档(note)的特 殊修订版本. GIID 包含数据库信息。The GIID 文档(note)修改时,IID会变化 。
你可以从 Notes 用户界面可以检查 ID 的信息。在视图中选择一个文档并且打开 它。然后选择菜单 文件 - 文档属性。Notes 显示“文档属性”信息框。在信息 页,Notes 显示和这个文档相关联的数据信息,包括文档创建和修改的日期和时 间以及note ID 信息。
note ID 信息显示成三行,包含关键字和16进制字符。对于一个典型的文档,通 常是这个样子:
ID: OF0000039D:3836C29F-ON85255DC9:0056FB94
SD00255DF4:0057B8FA-SN00000003
DB85255CD9:00567287-NT0000C092
这三行包含所选文档 Originator ID (OID), Universal Note ID (UNID), Glob al Note ID (GID), 和 Note ID (NID) 。
The Universal Note ID (UNID) and the Originator ID (OID)
第一、二行组成了完整的 Originator ID, Originator ID 由 Universal Note ID (整个第一行)加上序列时间和序列号(第二行):
Originator ID (OID) =
ID: (OF0000039D:3836C29F-ON85255DC9:0056FB94
SD00255DF4:0057B8FA-SN00000003)
DB85255CD9:00567287-NT0000C092
Universal Note ID (UNID) =
ID: (OF0000039D:3836C29F-ON85255DC9:0056FB94)
SD00255DF4:0057B8FA-SN00000003
DB85255CD9:00567287-NT0000C092
Sequence Time =
ID: OF0000039D:3836C29F-ON85255DC9:0056FB94
(SD00255DF4:0057B8FA)-SN00000003
DB85255CD9:00567287-NT0000C092
Sequence Number =
ID: OF0000039D:3836C29F-ON85255DC9:0056FB94
SD00255DF4:0057B8FA-(SN00000003)
DB85255CD9:00567287-NT0000C092
Originator ID (或 Universal Note ID)的前两部分由文件号(File member) 和文档号(note member)组成。第一行由 "OF" ("Originator ID - File"),紧 跟16个16进制字符,然后是连字符 "-" ,然后是 "ON" ("Originator ID - Not e"),后面又是16个16进制字符。 "OF" 后面连字符之前的16个16进制字符构成了 OID的文件号(File member)。"ON" 后面连字符之前的16个16进制字符构成了O ID的文档号(note member)。
OID.File =
ID: (OF0000039D:3836C29F)-ON85255DC9:0056FB94
SD00255DF4:0057B8FA-SN00000003
DB85255CD9:00567287-NT0000C092
OID.Note =
ID: OF0000039D:3836C29F-(ON85255DC9:0056FB94)
SD00255DF4:0057B8FA-SN00000003
DB85255CD9:00567287-NT0000C092
在头文件 nsfdata.h 中包含了下面的定义 ORIGINATORID 数据结构和 UNIVERSA LNOTEID 数据结构:
typedef struct {
DBID File; /* Unique (random) number */
/* (Even though this field is called "File," * /
/* it doesn't have anything to do with the fi le!) */
TIMEDATE Note; /* Original Note Creation time/date */
/* (THE ABOVE 2 FIELDS MUST BE FIRST - UNID */
/* COPIED FROM HERE ASSUMED AT OFFSET 0) */
DWORD Sequence; /* LOW ORDER: sequence number, 1 for first ver sion */
/* HIGH ORDER WORD: flags, as above */
TIMEDATE SequenceTime;/* time/date when sequence number was bump ed */
} ORIGINATORID;
#define OID ORIGINATORID
typedef struct {
DBID File; /* Unique (random) number */
/* (Even though this field is called "File," * /
/* it doesn't have anything to do with the fi le!) */
TIMEDATE Note; /* Original Note Creation time/date */
} UNIVERSALNOTEID;
#define UNID UNIVERSALNOTEID
文档的 Originator ID (OID) 确定了同一个文档(note)的所有复本。OID 由两 部分组成:Universal Note ID (UNID) 和序列号(sequence number)、序列时 间( sequence time)。 UNID 唯一的确定了同一个文档(note)的所有场合的 复本。序列号(sequence number )和序列时间( sequence time) 放在一起区 别同一文档(note)的不同版本。
Universal note ID (UNID) 确定了驻留在所有服务器上的同一个文档(note)。 然而,UNID 缺少直接访问一个给定数据库中的文档(note)的信息。UNID 用于 从一个文档来(note)引用另一个指定的文档(note)。答复文档中的"$REF" ( FIELD_LINK) 域包含了其父文档的 UNID , DocLinks(参见nsfdata.h中的 NOT ELINK 数据结构)包含了链接文档(note)的 UNID ,和链接视图的 UNID 以及 链接文档所在数据库的 ID (ViewLinks 包含了相同的信息,不同的是链接文档 的那部分全部设为0, 而 DatabaseLinks 包含的信息是链接文档和链接视图的部 分全部设为0) 。UNID 的重要特征是它能总是确定同一个文档(),不论它是否 更新过。
待续:关于复制和Note ID
============================
敬请关注NotesFAQ站。
你就会知道她的好处!
=========================
-- :※※※※※※※※※※※※※※※※※※
: ※※※ 太阳从东方升起 ※※※
: ※※※ 于是,白天来了 ※※※
:※※※※※※※※※※※※※※※※※※
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.167.50]
|
|