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 文本中可能有别名)。