![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вывести на экран из СУБД
Разведка © (2012-10-21 23:25:00)Например есть в таблице два поля "имя","должность"
задание вывести на экран содержимое двух полей в одном поле новом поле в таком виде [имя, должность] т.е. 9. Вывести на экран имя, соединённое с идентификатором должности через запятую и пробел в новой колонке Employee and Title . СУБД ORACLE
kilkennycat (2012-10-22 13:59:00) [1]
> MsGuns © (22.10.12 11:17) [4]
неизвестно, может он на печать это выводит или в пдф-файл, в общем, куда-то без возможности и необходимости дальнейшей обработки. тогда все перечисленные неудобства отпадают.
AV (2012-10-22 13:17:00) [2]через небезызвестную таблу получаем запрос
begin
dbms_output.put_line( 'select ');
for CUR in (select T.COLUMN_NAME from ALL_TAB_COLUMNS T
where T.TABLE_NAME = 'MYTABLE')
loop
dbms_output.put_line( to_char(CUR.COLUMN_NAME));
dbms_output.put_line( '|| '' , '' ||');
end loop;
dbms_output.put_line(' '' '' from '||'MYTABLE');
end;
который идет на выполнение.
MsGuns (2012-10-22 11:17:00) [3]>Есть ли упрощение такой записи
Есть просто другое решение, избавленное от недостатков Вашего.
Дело в том, что в Вашем случае возвращается НД с единственным полем, куда "сбиты" все реквизиты. Оно, может и компактнее при отображении, но:
а) Нет возможности нормального поиска по ЛЮБОМУ атрибуту, как и сортировки, например, по зарплате,
б) Не всегда удобно при отображении, т.к. "табличный" способ чисто визуально предпочтительнее "спискового"
в) Не дает в принципе возможность редактирования.
Правильнее делать по-другому:
1. Возвращать все поля таблицы, которые нужны для отображения, редактирования или для поиска/идентификации записей. Чаще всего это Select *
2. Отображать поля записи в табличной форме, т.е. каждому полю - "своя" колонка, при этом ширины колонок ограничивать сообразно данным набора, для дополнительных "сборных" колонок использовать TField.OnGetText либо Calc-поля.
3. При наличии "длинных" данных вместо "растягивания" колонок использовать технологии расширенного просмотра (хинты и подписи, многострочное отображение ячеек, Stay-On-Top формы с подробным и полным отображением всех реквизитов записи, режим переключения гридов и т.д.)
kilkennycat (2012-10-22 04:28:00) [4]Крнечно есть. SELECT * FROM employees;
Разведка (2012-10-22 00:42:00) [5]Есть ли упрощение такой записи
SELECT
employee_id||','||first_name||','||last_name||','||email||','||phone_number||','
||hire_date||','||job_id||','||salary||','||commission_pct||','
||manager_id||','||department_id "Employee and Title"
FROM employees
Разведка (2012-10-22 00:26:00) [6]Упс... уже нашел.
SELECT
employee_id||', '||last_name||', '||jobs.job_title||', '
"Employee and Title"
FROM employees,jobs
WHERE employees.job_id=jobs.job_id