![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как добавить поле в Dataset на этапе выполнения [D7]
Anna © (2004-03-25 15:04:00)В базе есть поле number,а я в DBgride хочу вывести его
словом (словесные описания лежат в другой таблице).
Т.е. сделать fkcalculated field по ходу действия.
Неудобство в том, что заранее неизвестно, захочет его пользователь увидеть или нет и какие вообще поля он захочет увидеть. На форме много checkboxов и всяких других условий. Sql-запрос клеится в процессе выполнения.
Petr V. Abramov (2004-03-25 18:50:00) [1]> Anna
Таблица, в которой "словесные описания", я так понимаю, небольшая? Если да, тогда:
пользователь увидеть не захотел -и у поля то_самое_поле_number visible = false
( select что-то,
то_самое_поле_number
from три_таблицы
)
а захотел -
select
q.*,
словесное_описание
from
( select что-то,
то_самое_поле_number
from три_таблицы
) q, таблица_словесных_описаний op
where q.то_самое_поле_number = op.то_самое_поле_number
Ну где-то еще group by добавятся, но идею, думаю, поняли
Минимум добавлений, максимум performance`а :)
bushmen (2004-03-25 16:47:00) [2]>Один раз и на всю оставшуюся жизнь.
В коде тоже вбивается один раз и на всю жизнь!
>И потом для выборки из вьюшника уже не ID, а именно текст используется
А про конструкцию select * from слышали? А потом по именам полей берите свое текстовое поле!
Anna (2004-03-25 16:43:00) [3]И потом для выборки из вьюшника уже не ID, а именно текст используется
Anna (2004-03-25 16:40:00) [4]Надо. Но вьюшник делается не на этапе работы приложения, а заранее ручками. Один раз и на всю оставшуюся жизнь.
bushmen (2004-03-25 16:32:00) [5]>можно сразу выбрать названия нужных параметров, а не их id number(2).
Все-равно надо в условиях выборки использовать эти id
Anna (2004-03-25 16:16:00) [6]Надо. Только туда можно сразу выбрать названия нужных параметров, а не их id number(2). Это же элементарное действие.
bushmen (2004-03-25 16:14:00) [7]А что, разве при генерации вьюхи запрос составлять не надо ?
Anna (2004-03-25 16:13:00) [8]О! Спасибо! Пожалуй, так я и сделаю! :-)
Sergey13 (2004-03-25 16:10:00) [9]2Anna
А если сделать вьюшку на объединение, и аналитику брать с нее, а не с таблицы?
bushmen (2004-03-25 16:06:00) [10]Так это самая элементарная выборка
Anna (2004-03-25 16:04:00) [11]Разрезов много, но это как раз не страшно. Там с индексами все в порядке и цифры лежат все в этой же таблице. А слазить в другую таблицу надо как раз за именами трех их этих "разрезов".
т.е. я должна выдать не
1 50шт
3 70шт
4 0шт...
а
в работе 50
заблокировано 70
отключено 0
Sergey13 (2004-03-25 15:57:00) [12]2Anna (25.03.04 15:45) [9]
А "разрезов" много? Ограниченное количество или произвольное? На трех таблицах много разрезов вряд ли получится. Может еще проще поступить. Разрез - свой запрос. И с оптимизацией легче справляться, и ораклу так больше, ИМХО, по душе.
Alex_Bredin (2004-03-25 15:55:00) [13]Johnmen и Sergey13 уже сказали все что нужно, соединяйте таблицы JOIN-ом, а показывать или нет поле - используйте св-во Visible у DBGrid.Column
Anna (2004-03-25 15:52:00) [14]СУБД - Oracle.
Имеенся в виду 'UNION ALL'?
Alex_Bredin (2004-03-25 15:51:00) [15]LocalSQL.hlp(хотя неясно какая СУБД)
Конструкции JOIN
Johnmen (2004-03-25 15:48:00) [16]>Anna
Найти описание SQL в инете несложно. Наверное...:)
Anna (2004-03-25 15:45:00) [17]2Sergey13
>Выдавайте в запросе все, а показывайте, что попросят...
Не получится, к сожалению. Там по запрошенным полям идет суммирование(count(...)+ group by в запросе),т.е. смотрится статистика в разных разрезах.
2Johnmen
Чуть подробнее, пожалуйста. Или кусок кода. Я просто с этим первый раз сталкиваюсь, поэтому и задаю дурацкие вопросы.Чем отличается запрос просто от запроса с соединением?
Sergey13 (2004-03-25 15:36:00) [18]2Anna
Можно не клеить вообще. Выдавайте в запросе все, а показывайте, что попросят. Может и дубовенько, но просто... 8-)
Johnmen (2004-03-25 15:35:00) [19]>Anna (25.03.04 15:16) [3]
Не запрос склеивать, запрос с соединением !
Ничего там сложного нет. Я и по 10-15 соединял и справедливо не боялся :)
Anna (2004-03-25 15:30:00) [20]2bushmen
>А о чем Вы думали, когда начинали программировать?
Да все больше о божественном...
А впрочем, ладно, склеим и из 4...