Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1208107582
Дмитрий С
2008-04-13 21:26
2008.05.25
Нормальная java-аська


15-1207729431
TStas
2008-04-09 12:23
2008.05.25
Неработающие порноссылки в "компонетах"


2-1209395597
dr_creigan
2008-04-28 19:13
2008.05.25
Почему када кидаю кнопку в RichEdit у меня текст не показывает?


2-1209470106
ekto
2008-04-29 15:55
2008.05.25
Нарисовать линию на рабочем столе,


4-1189364060
Rimd
2007-09-09 22:54
2008.05.25
enumWindows &amp; EnumChildWindows