1

今天是个好日子。

如果我将它用于更新数据,重新缓存有什么影响? 这就是我想要做的,但我需要知道如果我将 no-cache 替换为重新缓存会发生什么

我将解释这个想法,在这个文本框中,它将调用我数据库中的最后一个数字并加 1,但我发现这有问题,如果多个用户使用此表单,则数字可能会重复。@If(@IsNewDoc;@Elements(@DbColumn("":"nocache";@DbName;"GPA";1))+1;@Return(GPnum))

我的想法引导我走这条路,如果我使用@dblookup 来查找我的号码中是否有重复,但是我没有通过。

4

1 回答 1

2

重新缓存不会帮助您避免重复。

您正在尝试增加 Lotus Notes 中的计数器以创建文档的唯一顺序标识符。这是一个至少 20 年来被许多人多次讨论过的问题。您可以在 StackOverflow 以及其他各种论坛、博客和文章中找到很好的信息。有效的两种方法是

  • 将最后一个计数器值存储在配置文档中,并使用文档锁定来确保您没有两个用户同时访问和更新它。
  • 不要直接在用户代码中设置计数器变量。编写代码以在字段中放置一个“待定”值,并依靠仅在一台服务器上运行的计划或触发的后台代理来设置最终值。(由于代理管理器保证在一个数据库中一次只能运行一个代理,因此不会发生冲突。)
  • 不要为您的标识符使用顺序计数器。请改用该@Unique功能。文档将具有唯一代码而不是唯一编号。

请看这个答案,这个答案,还有这篇文章。

于 2012-11-26T05:50:38.810 回答