Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Массивы + хранимая процедура / 6 сообщений из 6, страница 1 из 1
10.10.2005, 17:57
    #33315784
SNK2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы + хранимая процедура
Может кто подскажет.
Нужно:

В хранимой процедуре сделать выборку данных загнать все ID в массив

....
FOREACH cursor1 FOR

SELECT id,p1, title FROM table;
LET arr[]=p1;
IF (id нет в arr[]) RETURN title WITH RESUME;
END FOREACH;

как это можно сделать?
...
Рейтинг: 0 / 0
10.10.2005, 18:59
    #33315910
Valentyn Pidburtnyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы + хранимая процедура
SNK2004Может кто подскажет.
Нужно:

В хранимой процедуре сделать выборку данных загнать все ID в массив

....
FOREACH cursor1 FOR

SELECT id,p1, title FROM table;
LET arr[]=p1;
IF (id нет в arr[]) RETURN title WITH RESUME;
END FOREACH;

как это можно сделать?
Понятия массив в информиксе нету. Как "массив" потом будет использоваться? Зачем оно?
...
Рейтинг: 0 / 0
10.10.2005, 21:21
    #33316052
Bill'и
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы + хранимая процедура
Сделай временную таблицу - и работай с ней.
Таблица - сплошной одномерный динамические массив записей :)
...
Рейтинг: 0 / 0
11.10.2005, 11:04
    #33316667
Enlighten me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы + хранимая процедура
SNK2004Может кто подскажет.
Нужно:

В хранимой процедуре сделать выборку данных загнать все ID в массив

....
FOREACH cursor1 FOR

SELECT id,p1, title FROM table;
LET arr[]=p1;
IF (id нет в arr[]) RETURN title WITH RESUME;
END FOREACH;

как это можно сделать?Единственный минус использования временных таблиц - процедура станет неприменимой в качестве "хранимой функции" - её нельзя будет использовать в select'ах типа select foo(field1) from table1 where foo(field2) = 0 . Если использование в таком контексте необходимо позарез (крайне редкий случай, ИМХО) то можно запаковать массив в строку известной структуры (CSV,XML) и распарсивать в вызываемой процедуре. Накладные расходы и оганичения - сами понимаете, не мелкие. Поэтому этот вариант применим только в редких, экзотических случаях.

Я говорю о седьмом информиксе.
BTW, вопрос: а более свежие версии эхотага ничего нового в рамках SPL (про Java и C понятно :-) в качестве контейнера не предлагают?
...
Рейтинг: 0 / 0
11.10.2005, 12:17
    #33316962
Valentyn Pidburtnyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы + хранимая процедура
Enlighten meЕсли использование в таком контексте необходимо позарез (крайне редкий случай, ИМХО) то можно запаковать массив в строку известной структуры (CSV,XML) и распарсивать в вызываемой процедуре.
Если порядок элементов в "массиве" не имеет значения, то проще использовать множества.
...
Рейтинг: 0 / 0
11.10.2005, 12:20
    #33316977
SNK2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы + хранимая процедура
спасибо, проблемма вроде решена.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Массивы + хранимая процедура / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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