精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 群件>>管理>>Domino/Notes>>Note ID 剖析(一)

主题:Note ID 剖析(一)
发信人: 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]

[关闭][返回]