Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.06.09;
Скачать: CL | DM;

Вниз

Есть ли возможность автоматически грузить описания полей?   Найти похожие ветки 

 
TheEd   (2010-11-19 01:34) [0]

Господа мастера, можно ли в fIBPlus компонентах (fIBDataSet) автоматически грузить описания полей в DisplayLabel?
Когда-то мне подсказывали простое решение - убей, не помню :(  

Вариант ручного получения типа

select RDB$DESCRIPTION from RDB$RELATION_FIELDS
where (RDB$RELATION_NAME = "MyTable")
and
(RDB$FIELD_NAME = "MyField")

ясен, но если таблиц много, то в цикле перебирая все fIBDataSet"ы, нужно получать имя исходных таблиц. Парсить SelectSQL для этого? а Если join из нескольких таблиц... В общем огород нагородить можно...


 
makz   (2010-11-19 08:55) [1]

FIB умеет создавать табличку FIB$FIELDS_INFO, откуда берет DisplayLabel. Туда и переливайте.


 
TheEd   (2010-11-20 01:15) [2]

Ок, стал использовать. Но чисто ради эксперимента стал писать описания полей не в FIB$FIELDS_INFO напрямую, а читать их в из описания полей в таблицу FIB$FIELDS_INFO с тем, что бы фактически иметь в качестве DisplayLabel - описание поля (RDB$DESCRIPTION).
Но при старте DisplayLabel устанавливаются в соответствии с текущим содержимым FIB$FIELDS_INFO, когда в FIB$FIELDS_INFO вычитываются значениея из RDB$DESCRIPTION, DisplayLabel уже не меняется.
Получается что праильный DisplayLabel у поля я вижу только при следующем запуске приложения...
Как принудительно перегрузить описания полей из репозитория?

Да, и ещё пара моментов:
1. Автоматически не сохраняется значение Display_Width при изменении ширины колонок - это вообще предусмотрено, или только то что прописано Display_Width - такая ширина при старте и будет?
2. При создании Column"ов в DBGrid"е свойство Visible из репозитория игнорируются?


 
makz   (2010-11-20 08:18) [3]

Уточните задачу, там что, динамическое добавление полей происходит? Почему нельзя 1 раз загрузить дескрипторы в FIB$FIELDS_INFO, пусть даже хранимую процедуру для этого написать?

1. "изменение ширины колонок" это где, в DBGrid? Он никакой обратной связи с FIB$FIELDS_INFO не имеет, пишите ручками, коли надо.
2. Visible в FIB$FIELDS_INFO= Visible в Fields Editor датасета, если там поля не добавлять, то не факт, что другие компоненты будут понимать.


 
TheEd   (2010-11-20 13:49) [4]


> Уточните задачу

да, в общем то тут дело принципа... Задачу я решу, вбив описания полей даже прямо в FIB$FIELDS_INFO, и без лишнего кода. Просто создавая структуру БД в IBExpert позабивал описания полей, и возникла мысль, что было бы недурно их напрямую в шапки таблиц втиснуть. Натура дурная - потратив времени в 10 раз больше, чем если бы переписал описания полей ручками в FIB$FIELDS_INFO :)

> никакой обратной связи с FIB$FIELDS_INFO

ясно. В принципе я в ини-файл ширины скидывал, чтобы у каждого юзверя свои настройки были. Смысл хранить их в  FIB$FIELDS_INFO пропадает...

> если там поля не добавлять, то не факт

нет, всё ок, если только не добавлять колонки в гриды.



Страницы: 1 вся ветка

Текущий архив: 2013.06.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
8-1230999582
maxistent
2009-01-03 19:19
2013.06.09
Захват звука с микрофона и ACM-Components


9-1194720876
Extracter
2007-11-10 21:54
2013.06.09
Не работают glDrawArrays и glDrawElements- не найдены


15-1359840605
Юрий
2013-02-03 01:30
2013.06.09
С днем рождения ! 3 февраля 2013 воскресенье


15-1359433991
O'ShinW
2013-01-29 08:33
2013.06.09
Безопасность домашнего WiFi


2-1352118969
AlphaHuman
2012-11-05 16:36
2013.06.09
нужен ли try..exept