Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何检查IBM Domino中已经存在的文档

如何检查IBM Domino中已经存在的文档
EN

Stack Overflow用户
提问于 2018-05-15 23:27:08
回答 3查看 1K关注 0票数 0

我正在创建一个代理来将被取消的文档移动到归档数据库,在复制到归档数据库之前,我想检查文档是否已经存在于归档数据库中。有些文档的主字段在数据库中是相同的,所以我不能使用这些字段来检查是否是相同的字段。是否有任何方法检查文档是否是两个数据库中的同一个文档?我发现,对于同一个文档,在两个数据库中,unid的某些部分是相同的(例如:源数据库中的unid : 613D530A7B107F46852578E9001DCC89 unid在dest数据库中: 85258289002735FB852578E9001DCC89),,但我不确定这是否是一个正确的标志。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-16 00:49:01

由于文档的unid (如果不被篡改)由从数据库副本ID计算的一部分和“创建”的转换时间戳组成,因此“相同”文档具有类似的unid并不完全是巧合。

但是,这并不是您可以依赖的,并且取决于您在归档中创建文档的方式。

如果你做了这样的事

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set docArchive = New NotesDocument( dbArchive )
Call doc.CopyAllItems( docArchive, True )

那么工会之间就没有任何关系了。

如果使用doc.CopyToDatabase,它将取决于尝试次数,并可能导致

  • 目标中相同的单位
  • 目标中类似的单位(文件第一份)
  • 目标中完全不同的unid (后续副本)

要识别你的文档,你必须有一个找到它的“钥匙”。

一种方法是使用同样的普遍性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set docArchive = New NotesDocument( dbArchive )
Call doc.CopyAllItems( docArchive, True )
docArchive.Universalid = doc.Universalid
Call docArchive.Save()

然后,您可以检查是否存在,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
On Error Resume Next
Set docArchive = dbArchive.getDocumentByUnid( doc.UniversalID )
On error Goto 0
If Not docArchive is Nothing then 'EXISTS
    ....
End If

如果您不想直接使用通用If,可以计算一个键,或者再次使用源文档的通用If作为键:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set docArchive = doc.CopyToDatabase( dbArchive )
strArchiveKey = doc.Universalid
'or compose unique key from 3 individual fields:
strArchiveKey = doc.getItemvalue( "OneField" )(0) & "-" & doc.getItemvalue( "AnotherField" )(0) & "_" doc.getItemvalue( "YetAnotherField" )(0)
Call docArchive.ReplaceitemValue( "ArchiveKey", strArchiveKey  )
Call docArchive.Save(True, True, True)

然后在按GetDocumentByKey排序的视图中从搜索或更好的位置找到归档文档:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set docArchive = db.Search( {ArchiveKey = "} & strArchiveKey & {"}, Nothing, 0).getFirstDocument()

Set docArchive = viwLkp.GetDocumentByKey( strArchiveKey )
票数 5
EN

Stack Overflow用户

发布于 2018-05-16 04:43:31

对于邮件、文档或会议邀请,您可以使用$MessageID字段作为归档之前要参考的唯一项。在过去,我用这个来输入客户通信的CRM数据库。即使在多个邮件数据库中,消息ID也是唯一的,这有助于将杂乱降到最低。

所以,像这样的东西(没有测试,没有设计客户端可用的atm) .

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'you should have the destination db and the current doc as an object already

dim searchFormula$
dim collDestination as NotesDocumentCollection
dim docDestination as NotesDocument

'of course you could use a lookup view in the destination
'database instead using the less performant db.search

searchFormula$ =|$MessageID="|+cstr(docCurrent.getItemValue("$MessageID")(0))+|"|
set collDestination = dbDestination.search(searchFormula$, Nothing,1)

if not collDestination is Nothing then
 'do nothing or return document already in target database
 'set docDestination = collDestination.getFirstDocument()
else 
  'copy only if doc in destination db not found
  set docDestination = docCurrent.copytoDatabase(dbDestination)
end if
票数 1
EN

Stack Overflow用户

发布于 2018-05-17 04:25:22

我强烈反对代理任何归档。归档应使用标准Notes归档选项和字段进行处理。理想情况下,文档只存在于主数据库或存档数据库中。当文档必须存档时,只需添加一个带有正确日期的字段ExpireDate,其余的归档就应该完成(激活时)。不需要自己移动文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50364752

复制
相关文章
Hive 视图和索引
Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时,Hive 可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中。
每天进步一点点
2022/12/15
1.4K0
Hive 视图和索引
SQL Server 索引和视图
索引(Index)是数据库中一种用于加速对表中数据的检索速度的数据结构。索引类似于书籍的目录,它提供了一种快速查找数据行的方法,避免了全表扫描的开销。通过使用索引,数据库系统可以直接定位到符合特定搜索条件的数据,而不必逐行遍历整个表。
神秘泣男子
2024/06/03
1140
SQL Server 索引和视图
事务、视图、索引、备份和恢复
创建视图:CREATE VIEW view_name AS <SELECT 语句>;
小陈运维
2021/10/13
3570
数据库:视图和索引
视图是一张虚拟表,并不在数据库中以存储数据值集的形式存在。在引用过程中依据基表动态生成。
全栈程序员站长
2022/09/16
6310
视图索引
大家好,又见面了,我是你们的朋友全栈君。创建索引视图 视图也称为虚拟表,这是因为由视图返回的结果集其一般格式与由列和行组成的表相似,并且,在 SQL 语句中引用视图的方式也与引用表的方式相同。标准视图的结果集不是永久地存储在数据库中。查询每次引用视图时,Microsoft&reg; SQL Server&#8482; 2000 会动态地将生成视图结果集所需的逻辑合并到从基表数据生成完整查询结果集所需的逻辑中。生成视图结果的过程称为视图具体化。有关更多信息,请参见视图解析。 对于标准视图而言,为每个引用视图的查询动态生成结果集的开销很大,特别是对于那些涉及对大量行进行复杂处理(如聚合大量数据或联接许多行)的视图更为可观。若经常在查询中引用这类视图,可通过在视图上创建唯一聚集索引来提高性能。在视图上创建唯一聚集索引时将执行该视图,并且结果集在数据库中的存储方式与带聚集索引的表的存储方式相同。有关用于存储聚集索引的结构的更多信息,请参见聚集索引。 说明 只有安装了 Microsoft SQL Server 2000 企业版或 Microsoft SQL Server 2000 开发版,才可以创建索引视图。 在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命名视图。这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益。有关更多信息,请参见在视图上使用索引。 在视图上创建聚集索引可存储创建索引时存在的数据。索引视图还自动反映自创建索引后对基表数据所做的更改,这一点与在基表上创建的索引相同。当对基表中的数据进行更改时,索引视图中存储的数据也反映数据更改。视图的聚集索引必须唯一,从而提高了 SQL Server 在索引中查找受任何数据更改影响的行的效率。 与基表上的索引相比,对索引视图的维护可能更复杂。只有当视图的结果检索速度的效益超过了修改所需的开销时,才应在视图上创建索引。这样的视图通常包括映射到相对静态的数据上、处理多行以及由许多查询引用的视图。 视图的要求 在视图上创建聚集索引之前,该视图必须满足下列要求: 当执行 CREATE VIEW 语句时,ANSI_NULLS 和 QUOTED_IDENTIFIER 选项必须设置为 ON。OBJECTPROPERTY 函数通过 ExecIsAnsiNullsOn 或 ExecIsQuotedIdentOn 属性为视图报告此信息。 为执行所有 CREATE TABLE 语句以创建视图引用的表,ANSI_NULLS 选项必须设置为 ON。 视图不能引用任何其它视图,只能引用基表。 视图引用的所有基表必须与视图位于同一个数据库中,并且所有者也与视图相同。 必须使用 SCHEMABINDING 选项创建视图。SCHEMABINDING 将视图绑定到基础基表的架构。 必须已使用 SCHEMABINDING 选项创建了视图中引用的用户定义的函数。 表和用户定义的函数必须由 2 部分的名称引用。不允许使用 1 部分、3 部分和 4 部分的名称。 视图中的表达式所引用的所有函数必须是确定性的。OBJECTPROPERTY 函数的 IsDeterministic 属性报告用户定义的函数是否是确定性的。有关更多信息,请参见确定性函数和非确定性函数。 视图中的 SELECT 语句不能包含下列 Transact-SQL 语法元素: 选择列表不能使用 * 或 table_name.* 语法指定列。必须显式给出列名。 不能在多个视图列中指定用作简单表达式的表的列名。如果对列的所有(或只有一个例外)引用是复杂表达式的一部分或是函数的一个参数,则可多次引用该列。例如,下列选择列表是非法的: SELECT ColumnA, ColumnB, ColumnA 下列选择列表是合法的: SELECT ColumnA, AVG(ColumnA), ColumnA + Column B AS AddColAColB SELECT SUM(ColumnA), ColumnA % ColumnB AS ModuloColAColB 派生表。 行集函数。 UNION 运算符
全栈程序员站长
2022/09/16
1.2K0
数据库视图和索引
虚拟视图是由其他其他关系上的查询所定义的一种关系。虚拟视图并不在数据库中存储,但可对其进行查询,就好像它被存储在数据库中一样。查询处理器会在执行查询时用视图的定义来替换视图。 试图也可以被物化,即它们从数据库中定期的进行构造并存储。物化可以加快查询的执行,一种典型的“物化视图”就是索引。 虚拟视图 视图定义 CREATE VIEW <视图名> AS <视图定义>; 例如:有个关系如下: Movies(title, year, length, name, producer) 要在其上创建一个视图,包括2018
SuperHeroes
2018/05/31
1.3K0
视图和索引(数据库学习)
引入—数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合所有用户的需求。
营琪
2019/11/04
1.1K0
mysql创建索引视图_mysql中创建视图、索引[通俗易懂]
视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变。
全栈程序员站长
2022/09/16
7.7K0
索引与视图
一个多列索引可以认为是包含通过合并(concatenate)索引列值创建的值的一个排序数组。 当查询语句的条件中包含last_name 和 first_name时
全栈程序员站长
2022/09/16
3260
视图索引问题
  最近和一直在研究如何加快查询数据库的速度,看了网络上说用索引,会加快查询的速度.我就认真看了索引了一些文章,也建立了表索引.但是在建立视图索引的时候遇到问题了, 无法在视图 ‘SBK_VIEW’ 上创建 索引,因为该视图未绑定到架购.查一下相关的资料,发现:
全栈程序员站长
2022/09/16
4220
Oracle 视图索引
注:为了在当前用户模式中创建视图,要求数据库用户必须有create any view(创建任何视图)的权限。
全栈程序员站长
2022/09/16
1.3K0
Oracle 视图索引
solr合并索引
solr下可以通过mergeindexes命令完成一个或多个core到其他core的索引合并,合并索引需要保证要被合并到的core的schema要与其他来源core的schema兼容,否则就会出现无法启动core的问题,我们可以通过代码CoreAdminRequest.MergeIndexes类实现,实例代码如下:
johnhuster的分享
2022/03/28
5270
【iOS 开发】父视图外部子视图点击响应 - hitTest
面试被问过两次了的一个问题,记录一下:假如一个 UIView(我们称作 FatherView),有一个 subview(我们称作 ChildView),这个 ChildView 在 FatherView 的 frame 外部,那么默认情况下,这个 ChildView 被点击的时候,并不会触发 FatherView 的点击响应链(这是合情合理的,FatherView 所在的位置都没被点击,它不遍历 subviews,不作回应是正常的),这时候怎样才能让这个 ChildView 相应点击事件?
KyXu
2019/04/11
1.1K0
【iOS 开发】父视图外部子视图点击响应 - hitTest
【MySQL】表的内外连接和视图
内连接实际上就是利用 where 子句对两种表形成的笛卡尔积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。
YoungMLet
2024/03/01
1840
【MySQL】表的内外连接和视图
MySQL中的索引、视图和DBA操作
索引就相当于一本书的目录,通过目录可以快速地找到对应的资源。在数据库方面,查询一张表的时候有两种检索方式:
共饮一杯无
2022/11/28
1.1K0
hive之路9-hive索引和视图
本文中主要是介绍了hive中索引和视图的相关操作。 修改表 修改表主要是对表的结构和属性进行操作,包含: 重命名 alter table oldname rename to new_table; 修改表属性 alter table table_name set tblproperties (property_name=property_value); 修改表注释 alter table table_name set tblproperties('comment'=new_comment); 修改存储属
皮大大
2021/03/02
7340
SQLServer中使用索引视图(物化视图)
物化视图:以前用的普通的视图,普通视图就是一段逻辑语句,对性能没有任何的提升,也不能创建索引,而物化视图会把视图里查询出来的数据在数据库上建立快照,它和物理表一样,可以创建 索引,主键约束等等,性能会有质的提升,但是其有缺点,会占用,可以设置它定时自动更新一次,也可以手动更新,当然也是可以设置及时更新的,但是会拉慢基表的增删改查操作,在这里我只讲思路,具体的话大家可以自己去研究。
跟着阿笨一起玩NET
2018/09/19
3.3K0
mysql之视图、索引
视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。
全栈程序员站长
2022/09/16
9860
sqlserver 视图创建索引_Oracle创建索引
1、添加索引 create index 索引对象名 on 索引对应表名(表内索引对象字段名); 例:需创建包含userid属性的userinfo表。 create index userid on system.userinfo(userid);
全栈程序员站长
2022/10/04
1.3K0
sqlserver 视图创建索引_数据库视图可以建立索引吗
视图(View)是从一个或多个表或其它视图导出的,用来导出视图的表称为基表,导出的视图又称为虚表。在数据库中,只存储视图的定义,不存放视图对应的数据,这些数据仍然存放在原来的基表中。 使用视图前,必须先创建视图,创建视图要遵守以下原则: (1)只有在当前数据库中才能创建视图,视图命名必须遵循标识符规则。 (2)不能将规则、默认值或触发器与视图相关联。 (3)不能在视图上建立任何索引。
全栈程序员站长
2022/09/23
2.8K0
sqlserver 视图创建索引_数据库视图可以建立索引吗

相似问题

使用完全外部联接对视图进行索引优化

10

完全外部连接减慢查询

20

无法运行完全外部连接

10

oracle数据库过滤器与完全外部连接和合并相交

10

外部连接抑制索引使用?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文