Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как передать имя таблицы в процедуру? [D7, FireBird 1.5]


Kodla ©   (2005-12-15 09:45:00) 

Добрый день.
Создаю процедуру
---------
CREATE PROCEDURE "AAA" (TAB_NAME VARCHAR(20))
AS BEGIN
SELECT T.* FROM TAB_NAME T  ...
----------
 ну и т.д.
Ругается что нет такой таблицы.
Что не так?


Kodla   (2005-12-15 10:30:00) [1]

To unknown ©
БОЛЬШОЕ спасибо!


unknown   (2005-12-15 10:02:00) [2]

:) Нельзя так делать.
Можно конечно извратиться через execute statement, но его,
по слухам, в следующей версии может и не быть.
Вобщем вот:
CREATE PROCEDURE GET_X (
   A VARCHAR(10))
RETURNS (
   X INTEGER)
AS
begin
for execute statement 'select t.x from '||:A||' t' into :X do
 suspend;
end

Естесственно, количество и тип полей, возвращаемых execute statement
должно быть известно - иначе ничего не выйдет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо