ORDA:如何根据字段值查询字段值?
ORDA: How can I query field value against a field value?
背景
我正在将旧的 4D 代码从 class 查询转换为 ORDA queries。我无法弄清楚的一件事是如何使用字段与字段进行查询,而不是使用字段与值进行查询。
编辑:我使用的是 4D v17.4。
例子
经典:
Query([Customers];[Customers]State="IN")
奥达:
ds.Customers.query("State = 'IN'")
目标
我希望能够在 table 中查询我比较一个字段值与另一个字段值的结果。我可以通过以下方式在 classic 查询中做到这一点:
Query([Customers];[Customers]State#[Customers]AdministrativeRegion)
我试过的
ds.Customers.query("State # AdministrativeRegion") // DOESN'T WORK
问题
这可能吗?
您没有提到您使用的是哪个版本的 4D。现在 4D 变化非常快,它们之间的差异确实很重要,但在这种情况下并没有那么大。
第一步是在查询字符串中使用占位符。
而不是
ds.Customers.query("State # AdministrativeRegion")
做
ds.Customers.query("State # :1 ";"some value")
每个占位符都由从 1 开始的 :n 语法引用。这是一个很大的好处,因为 4D 将管理转换比较值数据类型。这也是在实体、对象、公式等中引用值的关键
$entity_selection:=ds.Customers.query("State # :1";$entity.State)
其中 $entity
是您要与之比较的对象。
背景
我正在将旧的 4D 代码从 class 查询转换为 ORDA queries。我无法弄清楚的一件事是如何使用字段与字段进行查询,而不是使用字段与值进行查询。
编辑:我使用的是 4D v17.4。
例子
经典:
Query([Customers];[Customers]State="IN")
奥达:
ds.Customers.query("State = 'IN'")
目标
我希望能够在 table 中查询我比较一个字段值与另一个字段值的结果。我可以通过以下方式在 classic 查询中做到这一点:
Query([Customers];[Customers]State#[Customers]AdministrativeRegion)
我试过的
ds.Customers.query("State # AdministrativeRegion") // DOESN'T WORK
问题
这可能吗?
您没有提到您使用的是哪个版本的 4D。现在 4D 变化非常快,它们之间的差异确实很重要,但在这种情况下并没有那么大。
第一步是在查询字符串中使用占位符。
而不是
ds.Customers.query("State # AdministrativeRegion")
做
ds.Customers.query("State # :1 ";"some value")
每个占位符都由从 1 开始的 :n 语法引用。这是一个很大的好处,因为 4D 将管理转换比较值数据类型。这也是在实体、对象、公式等中引用值的关键
$entity_selection:=ds.Customers.query("State # :1";$entity.State)
其中 $entity
是您要与之比较的对象。