通过数据库特殊设计元素更改数据库内容

   

数据库中的一些特殊元素,他们有着固定的 Note ID。如下表:

Note IDDatabase Element
FFFF0002“About This Database” document
FFFF0004Default form
FFFF0008Default view
FFFF0010Database icon
FFFF0020Database Design Collection (view)
FFFF0040Database ACL
FFFF0100“Using This Database” document
FFFF0800Replication Formul

比如通过 db.GetDocumentByID(“FFFF0010″) 即可获得 Database icon 文档。而这个文档中保存了很多数据库属性信息,也就是说我们可以通过编程来修改这些数据库属性

Database icon 文档里面包含很多数据库属性信息。实际上它们都保存在 $Flags 域中,而这个域中每个字符都代表一个属性,列表如下(来源于 Notes C API 中的 stdnames.h 文件):

Flag = Meaning / Action
4 = Allow Soft Deletes
Z = Enable LZ1 Compression
f = Do Not Allow Stored Forms
z = Do Not Maintain Unread Marks
h = Mark Parent Document on Reply or Forward
J = Use JavaScript when generating Web Pages
F = Launch Designated Frameset
n = Never Show Policy (ie. Never show About Database when first opened)
7 = Large UNK Table (ie. allow more fields in database)
6 = Allow Design Locking
K = Restore as lasted viewed by user
c = Show About Database if Modified
Q = Replicate Unread Marks to Clustered Servers Only
U = Replicate Unread Marks to All Servers (appears with Q set)
2 = Optimise Document Table Bitmap
3 = Maintain LastAccessed Property
1 = Don’t Support Specialised Response Hierarchy
M = Multilingual Database
X = Web Access Requires SSL Connection
8 = Web Access Don’t Allow URL Open
i = Display Images After Loading
5 = Allow Document Locking
g = Database Type = Library
j = Database Type = Personal Journal
b = Database Type = Domino Directory
B = Database Type = Directory Catalog
m = Database Type = Multi DB Search
u = Database Type = Portfolio
A = Database Type = Mailbox
r = Database Type = Mailfile
p = Always Show About Database Document (ie. When Opened in the Client Property)
l = Launch Designated Navigator
s = Launch Designated Navigator in Own Window (used in conjuction with l above)
a = Launch First Attachment in About Database Document
d = Launch First DocLink in About Database Document
P = Web Launch = Show About Database Document
S = Web Launch = Open Designated Frameset
E = Web Launch = Open Designated Page
L = Web Launch = Open Designated Navigator in its Own Window
D = Web Launch = Open First DocLink in About Database Document
T = Web Launch = Open Designated DocLink
V = Web Launch = Open First Document in Designated View

通过向这个域中增加(或除去)字符标记,即可设置(或取消)相应的属性。下面是一段具体的代码:

Set doc = db.GetDocumentByID(“FFFF0010″) ‘获得 Icon 文档
doc.~$Flags = doc.~$Flags(0) & “x” ‘x代表需要增加的属性
doc.Save (True, False)

$Title 域。

      $Title 应该保存了数据库的标题。没错,标题确实是存在这个域里面的。不过呢,这里还放了一些其他的信息,包括数据库类别、主模板的属性、继承设计自哪个模板。所以我们通过修改这个域,就可以实现控制上述的四个属性了。数据具体的存储方式如下:

标题\n类别\n#1主模板名\n#2继承的模板名

我们可以看到,系统是用“\n”(也就是10号字符)来分隔各个部分的, 我们只要照着样子写回去就好了。但是在实验中我发现,如果用LS的 chr(10) 的话,保存后会变成另外的字符,而不是“\n”。原因可能是由于 LS 的 Unicode 编码和 Notes 的 LMBCS 转化造成的。所以我们改用公式语言的 @Char(10) 就可以了。最后要说明的是,以上四部分信息没有的部分直接略过就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值