gpt4 book ai didi

intersystems-cache - 使用其中一个属性的唯一值搜索对象的最佳方法

转载 作者:行者123 更新时间:2023-12-01 11:27:03 24 4
gpt4 key购买 nike

我有一个对象,其属性具有唯一值。这可能不是一个很好的理由,但这个属性不是我的 ID,因为它是一个列表,并且显示值由非打印字符组成。

我想检查是否存在具有此属性的特定值的对象。到目前为止,我想到的选项是将其设为 ID,然后使用内置的 %ExistsID 方法,使用 SQL 查询并手动搜索全局以查找适当的下标。

第一个解决方案的问题是我更喜欢有一个人类可读的 ID。如果我是傻的,请说出来。

第二种方法的问题是,在我看来,虽然 SQL 适合这样的事情,但在这种特殊情况下,在我看来,我正在启动这种繁琐的机制,需要大量的开销才能实现我应该能够更轻松地得到一个结果。再一次,我可能对此很愚蠢。

最后一个问题是值,作为主要由数字组成的 LB,存储为 $c(x,y,z)。我不确定如何搜索这个(即如何从我的列表中找到这个)。另外,它看起来有点乱,而且我的级别太低了。

我觉得应该有一种更简单的 OO 方法来基于唯一(索引)值获取对象,我几乎可以肯定有,但我似乎无法在文档中找到它。自动生成的 %PropertyExists(UniqueValue) 会很好。

也许我应该编写自己的生成器方法?如有任何建议,我们将不胜感激。

最佳答案

如果你看documentation ,您会发现,类中的每个唯一索引都有一些生成方法,例如 Open 和 Exists 和 Delete。使用这些方法中的任何一种,您都可以通过已知的唯一值打开任何对象。
所以,如果你有这样的索引

Index SomeInd On (Prop1, Prop2) [ Unique];

你可以打开对象,所以

set obj=##class(your.class).SomeIndOpen(prop1val, prop2val)

或者检查这样的对象是否已经存在,并获取这个对象的ID。

if ##class(your.class).SomeIndExists(prop1val, prop2val, .id) {
//
}

我希望这对你来说足够了,如果还不够,请随时问更多。

关于intersystems-cache - 使用其中一个属性的唯一值搜索对象的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36410859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com