Значение свойства Происхождение TField - PullRequest
3 голосов
/ 16 марта 2020

У меня есть сомнения по поводу свойства TField 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?

Справочная информация:

Я использую Dev Express TcxDBFilterControl который использует свойство Origin поля (в TcxDBFilterControl.GetExpressionFieldName, то есть if Origin <> '') вместо свойства FieldName для составления текста условия SQL. TpFIBDataSet устанавливает Origin на CUSTOMER.CUSTNO вместо C.CUSTNO, поэтому мне интересно, если это проблема TpFIBDataSet (которая должна была установить Origin на C.CUSTNO) или это TcxDBFilterControl проблема (которая не учитывает наличие псевдонимов в тексте SQL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...