|
|
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
ASE 15 Дана таблица, с 1 столбцом и 3 строками. Нужно сделать временную таблицу, где значения полей - названия колонок. Пример. Дано: таблица названий колонок для создаваемой временной таблицы. Нужно создать временную таблицу с именами столбцов из первой таблицы одного типа (int на пример). #Table1 p01 p02 p03 #Table2 p01 p02 p03 Какие решения для этого можно применить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 11:22 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
JenyaD wrote: > Дано: таблица названий колонок для создаваемой временной таблицы. > Нужно создать временную таблицу с именами столбцов из первой таблицы > одного типа (int на пример). > Какие решения для этого можно применить ? Никакие. Таблиц с переменным числом колонок не бывает. Если вам это надо, вы что-то сильно не так делаете. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 11:30 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Ситуация примерно такая : Я в пользовательском интерфейсе выбираю для отчёта показатели и добавляю их во временную таблицу как строки. Процедура для построения отчёта(которая возвращает resultset) должна уже вернуть эти показатели как столбцы отчёта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 11:55 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
JenyaD, курсор + динамический запрос 'create table ...' не помогает? У нас 12.5, временная таблица не создается, а постоянная создается. Можно впринципе сделать и постоянную с названием типа 'ххх'+convert(varchar(5),@@spid), а потом не забыть её удалить. MasterZiv Никакие. Таблиц с переменным числом колонок не бывает. Я так понимаю, имеется в виду таблица с заранее не известной структурой. Что сделать все же можно(правда временную не получилось), хотя и непонятно зачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 12:57 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Не знаю как под ASE, а вот под ASA решение вот такое. Есть несколько вариантов: 1. Вариант с созданием удалением таблицы отчета. (работает один такой отчет, но мне не нравится такое решение!) Процедура создает таблицу global temporary с именем 'tmp_report'||connection_id и заполняет ее. После этого она передает клиенту имя этой таблицы. Далее дело клиента как он это прочитает и обработает. (для упрощения обработки у нас есть дополнительная таблица в которой содержится информация о полях - тип, порядок, имя, русское имя) 2. Формировать процедурой xml с результатами и отдавать его клиенту. отдавать можно и через таблицу ;) и напрямую. 3. Если возможных полей не будет больше 255 то проще создать таблицу содержащую их все. заполнять процедурой только нужные а клиенту отдавать список что он должен показать и в каком порядке. п.1 и п3 рабочие ;) Может еще есть решения, да только никак не собраться и не найти их ;( все времени нет "на переделать то что работает" Кстати - процедура запоминает свойства result set (который она возвращает) еще на этапе ее компилирования. Мне не удалось заставить ее забыть его... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 14:38 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
JenyaD пишет: > Процедура для построения отчёта(которая возвращает resultset) должна уже > вернуть эти показатели как столбцы отчёта. Cross-Report делайте на клиенте. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 14:46 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Apucmokpam пишет: > Что сделать все же можно(правда временную не получилось), хотя и > непонятно зачем. Ну можно, сделать запрос и выполнить его динамически, или колонки в цикле по alter table добавлять, но лучше в консерватории всё же сразу поправить. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 14:48 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Пока самый лучший вариант перенести создание временной таблицы из процедуры в среду разработки. Тогда уж процедура всё будет знать и сделает как надо :). Про alter table я тоже думал, однако это не очень красивое решение. MasterZiv Cross-Report Можно немного поподробнее ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 15:06 |
|
||
|
Создать временную таблицу с переменным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
JenyaDMasterZiv Cross-Report Можно немного поподробнее ??Какой клиент используете? Если что-нибудь из Sybase (Infomaker/PowerBuilder) то это будет Cross Report. В Crystal Report тоже самое называется Crosstab. В Excel то же самое - PivotTable. Исходные данные в формате, ну например: Code1, Code2, SomeNumber. Клиент посредством кросс-отчета превратит это в табличку в которой Code1 будет идти сверху-вниз (будет изображать первичный ключ), а Code2 превратиться в колонки. А в полях будет SomeNumber сгруппированный какой-то агрегатной функцией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=55&tid=2011114]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 466ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...