TField我对's 的Origin属性有疑问。
该文档指出:
Origin仅在设计时由字段编辑器分配,并且仅在TQuery对象使用字段组件时分配。该Origin属性将出现在其数据集中的字段名称与其所基于的基表中的字段名称区分开来。例如,在使用以下 SQL 语句的查询中, 的Origin值为CUSTOMER.CUSTNO。SELECT CUSTNO AS ID FROM CUSTOMER在这种情况下,
FieldName属性是 ID。注意:
Origin在 Linux 上不可用。该Origin属性仅适用于启用 BDE 的 > 数据集,这些数据集仅出现在 Windows 产品中。
但是如果 SQL 文本包含表别名怎么办?
SELECT C.CUSTNO AS ID FROM CUSTOMER C
我应该期望Origin价值是CUSTOMER.CUSTNO还是应该是C.CUSTNO?
背景说明:
我正在使用 DevExpress TcxDBFilterControl,它使用字段的Origin属性(在TcxDBFilterControl.GetExpressionFieldName, ie中if Origin <> '')而不是FieldName属性来编写 SQL 条件文本。TpFIBDataSet设置Origin为而CUSTOMER.CUSTNO不是C.CUSTNO,所以我想知道这是一个TpFIBDataSet问题(应该设置Origin为C.CUSTNO)还是一个TcxDBFilterControl问题(这没有考虑到 SQL 文本中可能有别名)。