Форум: "Базы";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизSQL: имя таблицы - параметр Найти похожие ветки
← →
Karburator (2007-12-19 11:45) [0]Пожалуйста помогите - не могу написать хранимую процедуру с запросом в котором вместо конкретного имени таблицы после FROM, будет указан параметр через который это имя будет передаваться,
т.е. что-то типа того:
...
select count(*)
from :TEMP_TABL /* Parsing error! */
into :OUT_COLREC
...
← →
Desdechado © (2007-12-19 11:47) [1]Так нельзя. Используй execute, но это дурной тон.
← →
Sergey13 © (2007-12-19 11:56) [2]> [0] Karburator (19.12.07 11:45)
У тебя так много временных таблиц? За проектирование тебе двойка! 8-)
← →
Andrey © (2007-12-19 12:43) [3]Ога, execute statement или execute block... но, если по хорошему, лучше сразу яйца оторвать.
← →
Karburator (2007-12-19 13:30) [4]Спасибо. А проект не мой. Хотел провести кой-какой анализ БД используя ее системные таблицы (пока RDB$RELATIONS и RDB$RELATION_FIELDS). А где можно найти информацию о execute statement или execute block? Я нашел только такой синтаксис команды :
EXECUTE PROCEDURE name [param [, param ...]];
← →
Desdechado © (2007-12-19 13:42) [5]В ReleaseNotes.pdf
← →
PEAKTOP © (2007-12-19 14:39) [6]> Пожалуйста помогите - не могу написать хранимую процедуру с запросом в котором вместо конкретного имени таблицы после FROM, будет указан параметр через который это имя будет передаваться,
Тебе сюда http://delphimaster.net/view/3-1196414781/
смотри пост №5, там идея указана, обработаешь напильником под себя
> где можно найти информацию о execute statement или execute block?
В фирменной документации
($firebird)/doc/sql.extensions/README.execute_block.txt
($firebird)/doc/sql.extensions/README.execute_statement.txt
← →
Karburator (2007-12-20 08:04) [7]получилось :), мой пример:
...
TMP_SQL = "SELECT count(*) FROM " || :OUT_TABL;
EXECUTE STATEMENT :TMP_SQL INTO :OUT_COLREC;
...
всем спасибо и отдельное РЕАКТОР-у
а вот про
execute block
я информации не нашел, может данная конструкция во 2й версии существует? (у меня ФБ1.5.5)
← →
ЮЮ © (2007-12-20 09:33) [8]> получилось :), мой пример:
А теперь вызвать твою процедуру с параметром OUT_TABL, равным
<имя таблицы> DELETE FROM <имя таблицы> SELECT count(*) FROM <имя таблицы>
и удивляться, почему записей всегда 0 :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c