Вставка вместо имен полей - Description
Вставка вместо имен полей - Description
Люди добрые помогите. Я начал работать на firebird 1.5.3. Базы создаю в IBExpert. Хочу чтобы названия полей при выполнении запроса заменялись на Description этого поля. Скажите откуда програмно выдернуть Description?
Я использую компоненты IBX. Может в них есть какая либо стандартная процедура о которой я не знаю?
Я использую компоненты IBX. Может в них есть какая либо стандартная процедура о которой я не знаю?
ых, а вот как бы мне извернуться и получить Description, если я джойню 3-4 таблицы и есть у меня слабость первичный ключ обзывать везде REC_ID, но смысл для каждой таблицы несколько иной: где код сотрудника, а где код ящика?kdv писал(а):select ... from rdb$relation_fields
вариант where rdb$relation_name='my table' не совсем меня устраивает, ибо хочется имя таблицы автоматом выдергивать
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
ух, спасибо за подсказкуDimitry Sibiryakov писал(а):Ну так и выдергивай. У каждого поля есть указание к какой таблице он принадлежит (RTFM xsqlvar.relationname).

TFIBQuery
property Fields[const Idx: Integer]: TFIBXSQLVAR read GetFields;
а вот в TpFIBDataSet
property Fields: TFields;
и все рано ведь при выполнении запроса типа
Код: Выделить всё
SELECT
PRG_LIST.REC_ID,
DEPARTMENTS.REC_ID,
USERS.REC_ID,
MODULES.REC_ID, ....
вернет мне поля REC_ID, REC_ID1, REC_ID2, REC_ID3 .....
придется изгаляться

-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Подскажите что делать
выполняю такой код:
Хочу получить дескрипшен и вставить вместоназвания поля. Все поля удаются, а указанное выше:
iCounter1 := 0 to FieldCount - 1
IBDataSet.Current.Vars[iCounter1].SqlVar.AliasName = CAST
IBDataSet.Current.Vars[iCounter1].SqlVar.SqlName = CAST
IBDataSet.Current.Vars[iCounter1].SqlVar.RelName = ""
Есть ли какой выход и как получить настоящие имена поля и таблицы
(может я неправильный путь к sqlvar использую)
Если да дайте пример
выполняю такой код:
Код: Выделить всё
select
...
CAST(MASS_FD AS NUMERIC(18,3)),
...
from
...
iCounter1 := 0 to FieldCount - 1
IBDataSet.Current.Vars[iCounter1].SqlVar.AliasName = CAST
IBDataSet.Current.Vars[iCounter1].SqlVar.SqlName = CAST
IBDataSet.Current.Vars[iCounter1].SqlVar.RelName = ""
Есть ли какой выход и как получить настоящие имена поля и таблицы
(может я неправильный путь к sqlvar использую)
Если да дайте пример
не путай. описание поля вообще никак с запросом не связано и не может быть связано. То есть, оно может быть связано, если такое поле вообще есть, для него есть description, и это поле явно выбирается в запросе без всяких преобразований.
Например, в случае cast это уже НЕ исходный столбец.
Если тебе всего-лишь надо в гриде или еще где показывать русские имена столбцов - используй TField.DisplayLabel.
Например, в случае cast это уже НЕ исходный столбец.
Если тебе всего-лишь надо в гриде или еще где показывать русские имена столбцов - используй TField.DisplayLabel.