Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переменное количество полей в ХП
|
|||
|---|---|---|---|
|
#18+
Как заставить ХП выдавать разное количество полей разного типа. я так понимаю если я создал хп типа : .....RETURNS SETOF "public"."mytype" то ничего кроме mytype она вернуть не может. Что делать ? Нужно для итогового отчета. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 14:18 |
|
||
|
Переменное количество полей в ХП
|
|||
|---|---|---|---|
|
#18+
Если это отчет, то ты наверное знаешь хоть примерно каков возможный набор полей? Может сделать возврат через массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 14:20 |
|
||
|
Переменное количество полей в ХП
|
|||
|---|---|---|---|
|
#18+
Очень примерно. Со временем оно будет существенно расти. Заголовки столбцов это клиенты. Точнее параметры клиентов. По 2-3 шт на клиента. Единственное что известно точно это типы полей могут быть varchar и decimal. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 14:26 |
|
||
|
Переменное количество полей в ХП
|
|||
|---|---|---|---|
|
#18+
Есть вариант с временной таблицей: 1. Запускаешь ХП 2. Она готовит данные 3. Создает временную таблицы 4. Записывает полученные данные во временную таблицу 5. Потом ты получаешь данные из этой таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 14:30 |
|
||
|
Переменное количество полей в ХП
|
|||
|---|---|---|---|
|
#18+
У меня БД перенесена из MS SQL. Там спокойно из процедуры возвращал любой набор набор данных. В Постгресе сделал так же, чуточку помудился только с клиентом. Функция должна возвращать refcursor, внутри функции объявляем переменную этого типа, открываем курсор для нужного запроса (open <cursor> for..(можно и для динамического SQL - open <cursor> for execute ())), и возвращаем его клиенту. Вызов функции осуществляется в несколько шагов (у меня всё через API ODBC): 1. открывает транзакцию, т.к. рефкурсор будет достепен только на время транзакции; 2. вызываем функцию, на клиенте получаем имя рефкурсора - "<unnamed portal N>", где N - порядковый номер курсора в соединении; 3. забираем набор данных из курсора - fetch all from "<unnamed portal N>"; 4. закрываем транзакцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 12:55 |
|
||
|
Переменное количество полей в ХП
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 13:33 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=309&tid=2005930]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 372ms |

| 0 / 0 |
