Конференция "Базы" » Можно ли в запросе заменить названия столбцов на их описание? [D7, MSSQL]
 
  • greg123 (04.09.08 13:09) [0]
    Добрый день, Можно ли в запросе заменить названия столбцов на их описание?
    Т.е. например запрос вида:
    select name_org from factory - выдаст результат в виде колонки с названием "name_org".
    В свойстве "description" - у данного поля стоит - "Название организации".
    Возможно ли чтобы запрос выдавал результат в виде колонки под названием "Название организации".
    Чтобы данное действие было универсальным, т.е. не прописывать к каждого полю алиас:
    select name_org as [Название организации]  from factory?
    Заранее спасибо.
  • Игорь Шевченко © (04.09.08 13:10) [1]
    а свойство DisplayLabel у поля поменять ?
  • stas © (04.09.08 13:12) [2]
    Просто не сделаешь, нужно хранимку писать, которая сгенерирует sql запрос и выполнит потом.
  • Ega23 © (04.09.08 13:16) [3]
    TDBGrid.Column.Title   :)
  • Правильный$Вася (04.09.08 13:19) [4]

    > stas ©   (04.09.08 13:12) [2]

    микроскопом гвозди...
  • greg123 (04.09.08 13:59) [5]
    Если использовать свойство TDBGrid.Column.Title   то необходимо знать заранее набор полей, в моем случае набор полей не известен гриду, поэтому
    заранее прописать свойства Title для всех полей нельзя
  • Правильный$Вася (04.09.08 14:07) [6]

    > необходимо знать заранее набор полей

    нет, их можно указывать одновременно с прописыванием запроса
    хоть в рантайме присваивать
  • stas © (04.09.08 14:09) [7]
    greg123   (04.09.08 13:59) [5]
    Не обязательно.
    после открытия запроса у тебя автоматически создаются колонки в гриде, после чего ты проходишь циклом по колонкам выполняя запрос к базе и получая Description каждой колонки.
  • Sergey13 © (04.09.08 14:15) [8]
    > [0] greg123   (04.09.08 13:09)

    А что ты дальше собираешься делать с датасетом в котором поля типа "Название организации"? Только в грид выводить что-ли?
  • Ega23 © (04.09.08 14:18) [9]

    > Если использовать свойство TDBGrid.Column.Title   то необходимо
    > знать заранее набор полей, в моем случае набор полей не
    > известен гриду, поэтому


    Простите, а нафига он тогда в гриде нужен?
    Не, ну я могу понять какой-нибудь DebugDGGrid, в котором что-то смореть по ходу дела можно, как средство отладки.
    Но вообще-то - запрос по сущностям - свой грид. Его и красить надо, и фонт выставлять и т.д. и т.п. Это гораздо легче, чем у одного и того же грида в ран-тайм всё это дело менять.
  • greg123 (04.09.08 14:19) [10]
    Sergey13 ©   (04.09.08 14:15) [8]

    да, выводить в грид
  • Медвежонок Пятачок © (04.09.08 14:20) [11]
    С незапамятных времен в SQL explorer была поддержка Dictionaries для бд.
    Спецом для таких задач. А IDE редактор полей датасетов позволял тянуть метаданные словаря.
  • Sergey13 © (04.09.08 14:21) [12]
    > [10] greg123   (04.09.08 14:19)

    И все? Редактировать ничего не надо?
  • Медвежонок Пятачок © (04.09.08 14:22) [13]
    а вообще дурь конечно.
    сделаем тысячу лишних телодвижений, лишь бы не менять капшены колонок.
  • Медвежонок Пятачок © (04.09.08 14:23) [14]
    И все? Редактировать ничего не надо?

    Сегодня нет. К редактированию приступим через месяц, когда дескрипшены научимся прилеплять
  • greg123 (04.09.08 14:23) [15]
    Раскрасить и выставить фон можно как раз один раз и больше не менять.
    Вопрос о получении описания поля у меня появился из-за того, чтобы результаты запросов к разным таблицам выводились в один грид и свойство title заполнялось именно описанием поля, а не названием.
  • greg123 (04.09.08 14:25) [16]
    Редактировать ничего не надо, запросы только на select
  • Ega23 © (04.09.08 14:27) [17]

    > Раскрасить и выставить фон можно как раз один раз и больше
    > не менять.


    Ага, щаз.


    > Вопрос о получении описания поля у меня появился из-за того,
    >  чтобы результаты запросов к разным таблицам выводились
    > в один грид и свойство title заполнялось именно описанием
    > поля, а не названием.


    Можешь объяснить: а нафига?
  • Медвежонок Пятачок © (04.09.08 14:28) [18]
    Возможно ли чтобы запрос выдавал результат в виде колонки под названием "Название организации".
    Чтобы данное действие было универсальным, т.е. не прописывать к каждого полю алиас:
    select name_org as [Название организации]  from factory?


    невозможно.
  • Медвежонок Пятачок © (04.09.08 14:30) [19]
    Кстати mssql специально для извращенцев поддерживает имена полей таблиц в кириллице
  • Ega23 © (04.09.08 14:32) [20]

    > Кстати mssql специально для извращенцев поддерживает имена
    > полей таблиц в кириллице


    Боже упаси такое щщастье.
  • greg123 (04.09.08 14:39) [21]
    > Вопрос о получении описания поля у меня появился из-за того,
    >  чтобы результаты запросов к разным таблицам выводились
    > в один грид и свойство title заполнялось именно описанием
    > поля, а не названием.

    Можешь объяснить: а нафига?

    Потому что пользователь будет выбирать к какой таблице он хочет обратиться и не очень красиво если заголовки колонок будут английскими буквами
  • Медвежонок Пятачок © (04.09.08 14:41) [22]
    Потому что пользователь будет выбирать к какой таблице он хочет обратиться и не очень красиво если заголовки колонок будут английскими буквами

    Он что, еще и запрос сам будет писать ?
    Или в программе будет предопределенный перечень запросов, которым установить алиасы полей никто не мешает во время разработки?
  • Медвежонок Пятачок © (04.09.08 14:42) [23]
    и не очень красиво если заголовки колонок будут английскими буквами

    Очередной перец с обостренным чувством прекрасного.
    Не красиво, не очень красиво, вооще не красиво .....
  • greg123 (04.09.08 14:42) [24]
    Удалено модератором
  • Ega23 © (04.09.08 14:42) [25]

    > Потому что пользователь будет выбирать к какой таблице он
    > хочет обратиться и не очень красиво если заголовки колонок
    > будут английскими буквами


    Знаешь что.
    Если пользователь у тебя САМ выбирает, к какой таблице подключаться, то в этом случае ему нужно предоставлять конкретную информацию по этой таблице.
    И если поле в таблице называется AdmStCod, то оно и в гридк должно так выглядеть, а не "Код состояния Администратора".
  • Медвежонок Пятачок © (04.09.08 14:44) [26]
    пусть лучше умные люди опытом поделяться с начинающим

    Медвежонок Пятачок ©   (04.09.08 14:28) [18]
    Возможно ли чтобы запрос выдавал результат в виде колонки под названием "Название организации".
    Чтобы данное действие было универсальным, т.е. не прописывать к каждого полю алиас:
    select name_org as [Название организации]  from factory?

    невозможно.
    <Цитата>


    Невозможно
  • Ega23 © (04.09.08 14:46) [27]

    > Пятак ты уже все что смог придумал, пусть лучше умные люди
    > опытом поделяться с начинающим


    см. [18]
  • greg123 (04.09.08 14:47) [28]
    Просто я хотел, чтобы пользователь выбирал набор полей, которые он хотел бы видет в результате запроса и в этом списке видел не "AdmStCod", а "Код состояния Администратора" и соответственно в гриде колонка точно так же зазывалать.
    Но я так понимаю, что это очень проблематично.
  • Медвежонок Пятачок © (04.09.08 14:49) [29]
    Ты определись чего ты хочешь на самом деле.
    Хочешь ты чтобы юзер видел русское название или ты не хочешь извоекать метаданные и прописывать алиасы полям в запросе.

    Это две совершенно разные хотелки
  • Медвежонок Пятачок © (04.09.08 14:57) [30]
    делаем хранимку с параметром "имя таблицы" в ней тягаем дескрипшены полей, формируем динамический sql и выполняем. либо тоже самое но на клиенте.
  • Johnmen © (04.09.08 14:59) [31]
  • Jeer © (04.09.08 15:00) [32]
    И будет тебе сщастье:
    select admincolumn as "Код состояния Администратора" from megatable

    Ну а уж сделать семантическую подмену в запросе - догадаешься как, надеюсь.
  • Правильный$Вася (04.09.08 15:12) [33]
    замое занятное начнется, когда пользователь захочет переключать интерфейс с русского на казахский, например, и наоборот - в произвольное время
    а описания полей так и останутся русскими
    и на кой ему такое?
  • greg123 (04.09.08 15:16) [34]
    Спасибо, то что нужно, сейчас буду разбираться
  • Ega23 © (04.09.08 15:17) [35]

    > замое занятное начнется, когда пользователь захочет переключать
    > интерфейс с русского на казахский


    Забавное начнётся раньше, когда пользователь будет получать все поля (и BLOB в том числе) на клиент через Select *. Причём даже те, которые ему нафиг не нужны.
  • Игорь Шевченко © (04.09.08 16:20) [36]
    Давить желающих странного
  • Johnmen © (04.09.08 16:31) [37]

    > Давить желающих странного

    Пусть сначала вдоволь на...ся :)
 
Конференция "Базы" » Можно ли в запросе заменить названия столбцов на их описание? [D7, MSSQL]
Есть новые Нет новых   [134473   +28][b:0][p:0.001]