Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

БД Integer->String [D7]


валя ©   (2016-10-28 12:09:00) 

в бд mysql есть таблица с полем Integer, которое отображает некоторое состояние записи.

Как можно уже на клиенте преобразовывать поле для  более иформативного отображения, те в DBGrid не 1,2,3, а например:
1->красный
2->синий
3->белый.

Компоненты доступа к БД Zeoz


ухты_   (2016-11-01 01:22:00) [1]

кейс плох если надо локализировать данные, в итоге все равно упрешься в таблицу или в клиента (если типа сортировки не нужно)


Германн   (2016-11-01 00:36:00) [2]

Как раз не спорю и не хочу спорить без точной формулировки ТЗ.


sniknik   (2016-10-31 09:56:00) [3]

> Зачем делать сложно то, что проще простого ?
опять ИМХО, которого некоторые не понимают, но если рассматривать с точки зрения простоты то рулит сase... если конечно количество замен не какое то запредельное, после опять таблица значений (при большом количестве знамен проще наоборот таблица), и только после геттекст... т.к. тут нужен код с дополнительной обработкой, + массив значений для замен, и все самому. а в запросе просто написал список и все.

и опять таки все оффтопик т.к. в вопросе было про замены на клиенте.

> не вижу причин для дальнейшего спора
о, так ты споришь? а я вот ответил сначала ТС, высказал свое мнение, после тебе...


Германн   (2016-10-31 01:01:00) [4]


> sniknik ©   (30.10.16 19:45) [9]

Ну короче. Оптимальное решение зависит от конкретного случая. В каких-то случаях сaseв запросе будет лучше (если движок БД это позволяет).
В каких-то дополнительная таблица типа stas ©   (28.10.16 12:46) [2]
А в каких-то и OnGetText.
И не вижу причин для дальнейшего спора, пока ТС не уточнит именно задачу.


iop   (2016-10-30 23:56:00) [5]

кейс лаконичнее геттекста


Игорь Шевченко   (2016-10-30 23:25:00) [6]

sniknik ©   (30.10.16 19:45) [9]

Ты на минуту представь, что нет нужды сортировать и фильтровать по таким полям. Некоторым и в Excel не надо выгружать, вот же.
Зачем делать сложно то, что проще простого ?


sniknik   (2016-10-30 19:45:00) [7]

> Ты уверен в этом? Это же только смена визуального отображения значения поля.
абсолютно, именно из-за того что "это же только смена визуального" и происходит "разрыв шаблона", тот же sort по полю будет как в вопросе по внутренним данным (1, 2, 3), а видеть по идее должны -
3->белый
1->красный
2->синий
или фильтр по вхождению в строку, а в основе число и как? да здравствует велосипедо строение? и так со всем, что оперирует внутренними данными.


Германн   (2016-10-29 01:15:00) [8]


> sniknik ©   (28.10.16 18:36) [7]
>
> при подмене в OnGetText,
>  неправильно/неудобно работать с данными на клиенте - неправильная
> сортировка по полю

Ты уверен в этом? Это же только смена визуального отображения значения поля.


sniknik   (2016-10-28 18:36:00) [9]

case в запросе предпочтительней, ИМХО, при подмене в OnGetText, неправильно/неудобно работать с данными на клиенте - неправильная сортировка по полю, выгрузка в ексель рекордсетом не видит "подменки", и т.д.
а еще лучше справочная таблица по номерам -цветам, и запрос с join-ом.

НО, и то и то не на клиенте, а на сервере, т.что по вопросу - оффтопик.


валя   (2016-10-28 16:22:00) [10]


> А если завтра добавиться малиновый что покажет программа
> ?

Это если, но этого если не будет.


stas   (2016-10-28 15:20:00) [11]

валя ©   (28.10.16 15:17) [4]

А если завтра добавиться малиновый что покажет программа ?


валя   (2016-10-28 15:17:00) [12]


> stas ©   (28.10.16 12:46) [2]


> iop ©   (28.10.16 13:57) [3]


Ответ уже дали в [1]


iop   (2016-10-28 13:57:00) [13]

банальный же

case fld
when 1 then 'красный'
when 2 then 'синий'
...
else 'бесцветный'
end as fld_color


stas   (2016-10-28 12:46:00) [14]

На сервере создать таблицу с полями id|text, и заполнить id=1, text = красный и т.д.
потом на клиенте либо lookup либо сразу запрос на сервере написать.


Игорь Шевченко   (2016-10-28 12:13:00) [15]

TField.OnGetText


Наверх

Титульная страница Поиск, карта сайта Написать письмо