powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Возврат функцией нескольких селектов.
18 сообщений из 18, страница 1 из 1
Возврат функцией нескольких селектов.
    #35183312
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, добрый вечер.
Могу ли я через функцию вернуть несколько селектов?
В частности, это нужно для заполнения адаптера, реализация коего присутствует.

Спасибо.

Он обычный сталевар.
Он делает жесть.
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183362
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью функции можно сделать очень многое в том числе и возврат нескольких селектов.
Можно это сделать и без использования функции.
Если нужна более конкретная помощь, то опишите подробнее, что Вам нужно в итоге получить и на основе каких данных.
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183390
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan BlackС помощью функции можно сделать очень многое в том числе и возврат нескольких селектов.
Можно это сделать и без использования функции.
Если нужна более конкретная помощь, то опишите подробнее, что Вам нужно в итоге получить и на основе каких данных.
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

Доступ к таблицам осуществляется исключительно из функций.
Какое возвращаемое значение необходимо выставить у функции, чтобы одним обращением к ней вернуть несколько селектов, которые сформируют необходимые для создания отчётов таблицы в датасете.
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183427
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
returns setof record
http://www.sql.ru/forum/actualthread.aspx?tid=531568
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183472
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan Black returns setof record
http://www.sql.ru/forum/actualthread.aspx?tid=531568
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

Это возврат результата одного селекта.
Мне необходим результат нескольких селектов.
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183487
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что подразумевается по несколькими селектами и по какому правилу эти селекты должны объединяться в единый результат?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183488
_ssergn_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFAIK этот изврат отсутствует в PostgreSQL. Да он есть в каком-нибудь Sybase, но лучше бы его и там не было
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183494
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ssergn_AFAIK этот изврат отсутствует в PostgreSQL. Да он есть в каком-нибудь Sybase, но лучше бы его и там не было
Имхо, при нескольких селектав в функции возвращать только последний, тоже не лучшее решение.
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183497
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возвращайте несколько курсоров
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183514
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хнык Dan Black returns setof record
http://www.sql.ru/forum/actualthread.aspx?tid=531568
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

Это возврат результата одного селекта.
Мне необходим результат нескольких селектов.может быть всё проще и Вам нужен просто union ?
Код: plaintext
1.
2.
3.
4.
5.
6.
seb=> select  1  as id, 'a' as a, 'b' as b union select  2 , 'c', 'd';
 id | a | b
----+---+---
   1  | a | b
   2  | c | d
( 2  rows)
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183518
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
столбцы присутствующие в первом select и отсутствующие во втором можно заполнить например null
Код: plaintext
1.
2.
3.
4.
5.
6.
seb=> select  1  as id, 'a' as a, 'b' as b union select null, null, 'd';
 id | a | b
----+---+---
   1  | a | b
    |   | d
( 2  rows)


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183540
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшможет быть всё проще и Вам нужен просто union
Нет, мне нужно возврат нескольких селектов.
Пока что решил разбить селекты на несколько функций и вызывать их одной командой, в результате получаю датасет с несколькими таблицами. В том случае, если использую временные таблицы, которые используются в этих функциях, всё становится ещё хуже.
Код: plaintext
NpgsqlCommand cmd = new NpgsqlCommand("select f_createtemptables(); select f_selecttable1(); select f_selettable2; select f_droptemptables;");

Не самое лучшее решение.
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183557
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает использовать несколько отдельных запросов?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183625
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan BlackЧто мешает использовать несколько отдельных запросов?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

При ошибке в процессе выполнения череды запросов может невыполниться последний, в котором удаляются темповые таблицы.
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183655
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хнык Dan BlackЧто мешает использовать несколько отдельных запросов?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

При ошибке в процессе выполнения череды запросов может невыполниться последний, в котором удаляются темповые таблицы.


реализуйте логику в клиенте
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183811
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh Хнык Dan BlackЧто мешает использовать несколько отдельных запросов?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

При ошибке в процессе выполнения череды запросов может невыполниться последний, в котором удаляются темповые таблицы.
реализуйте логику в клиенте
Логику выборки? о_0
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35183873
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хнык Dan BlackЧто мешает использовать несколько отдельных запросов?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

При ошибке в процессе выполнения череды запросов может невыполниться последний, в котором удаляются темповые таблицы.брр... непонятно... :) так транзакция откатится и временные таблицы удалятся.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
seb=> CREATE TEMP TABLE ttt (id serial, val text) on commit drop;
NOTICE:  CREATE TABLE создаст подразумеваемую последовательность "ttt_id_seq" для serial-колонки "ttt.id"
CREATE TABLE
seb=> insert into ttt values (default, 'aaa');
INSERT  0   1 
seb=> select * from ttt;
 id | val
----+-----
   1  | aaa
( 1  запись)

seb=> error;
ERROR:  ошибка синтаксиса в или рядом "error"
LINE  1 : error;
        ^
seb=> end;
ROLLBACK
seb=> select * from ttt;
ERROR:  отношение "ttt" не существует
...
Рейтинг: 0 / 0
Возврат функцией нескольких селектов.
    #35186187
v0v4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если UNION не подходит, то RETURN next ...
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Возврат функцией нескольких селектов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]