powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Informix [игнор отключен] [закрыт для гостей] / Нужна помощь в написании ХП с динамическим запросом
7 сообщений из 7, страница 1 из 1
Нужна помощь в написании ХП с динамическим запросом
    #37060421
xquaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Informix 9.21.UC3

нужна помощь в написании ХП с динамическим запросом.
суть проблемы: есть несколько таблиц со структурой table_name(id, pid, title)
где pid - id родительского элемента, ссылается на id из этой же таблицы
задача написать процедуру которая по id родительского выдает набор всех дочерних элементов
для одного конкретного справочника написал, а как реализовать универсальную, где еще одним параметром передаётся имя таблицы, с которой делать выборку?
как заставить выполняться запрос хранящийся в __sql?



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create procedure "creator".get_child_subdivisions(
  _pid int               -- id родительского эленента
  _table                --  имя таблицы
) returning int;
define __id, __id1 int;
define __sql varchar( 100 );

--  let __sql = 'select id into _tmp_id from ' || _table || ' where pid = ?';
-- как заставить выполняться запрос хранящийся в __sql

  foreach select id into __id from subdivisions where subdiv_id = _pid
    foreach execute procedure get_child_subdivisions(__id) into __id1 
      return __id1 with resume;
    end foreach;  
  end foreach;  
  return _pid with resume; 

end procedure;                                                                                                            
...
Рейтинг: 0 / 0
Нужна помощь в написании ХП с динамическим запросом
    #37060830
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перейти на 11.5, в которой появились динамические запросы
...
Рейтинг: 0 / 0
Нужна помощь в написании ХП с динамическим запросом
    #37060858
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Нужна помощь в написании ХП с динамическим запросом
    #37062271
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис http://www.sql.ru/faq/faq_topic.aspx?fid=535
offtop on
Сейчас поиском по форуму проверил - оказалось, что эта ссылка давалась 9 раз за последние 4 года.
Все таки не зря FAQ создавался :)
offtop off

Можно передачу параметра сделать и "снаружи", в некоем командном файле. Смотря для чего и где вам нужен результат....
...
Рейтинг: 0 / 0
Нужна помощь в написании ХП с динамическим запросом
    #37062467
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisЖуравлев Денис http://www.sql.ru/faq/faq_topic.aspx?fid=535
offtop on
Сейчас поиском по форуму проверил - оказалось, что эта ссылка давалась 9 раз за последние 4 года.
Все таки не зря FAQ создавался :)
offtop off

Можно передачу параметра сделать и "снаружи", в некоем командном файле. Смотря для чего и где вам нужен результат....
кстати вопрошающему будет полезен новый деревянный синтаксис connect by. И меня кстати радует что работает
Код: plaintext
select level from table(set{ 1 }) connect by level<= 10 
...
Рейтинг: 0 / 0
Нужна помощь в написании ХП с динамическим запросом
    #37062468
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisofftop on
Сейчас поиском по форуму проверил - оказалось, что эта ссылка давалась 9 раз за последние 4 года.
Все таки не зря FAQ создавался :)
offtop off

Да его можно читать только ради фразы "Вам это не нужно, это не нужно вообще никому. Единственный случай применения ..." .
...
Рейтинг: 0 / 0
Нужна помощь в написании ХП с динамическим запросом
    #37064967
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хороший пример того, как неправильные решения порождают пролемы.
Как вариант (если не захочется морочиться с динамическим SQL) могу предложить создать view в котором собрать все ваши таблицы. А в процедуре работать уже с ним.

Общая же мысль состоит в том, что если это одинаковые (схожие) сущности то не надо их распихивать в стопицот таблиц. А если разные (по сути, опять же, а не по форме) - не надо обрабатывать одним куском кода.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Нужна помощь в написании ХП с динамическим запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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