![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FireBird хранимые процедуры
Irissss © (2010-05-18 12:42:00)Начинаю разбираться с хранимыми процедурами:
подскажите, где ошибка
CREATE OR ALTER PROCEDURE NEW_PROCEDURE (
table_name char(30) not null)
as
begin
CREATE TABLE table_name (
ID INTEGER NOT NULL,
NAME VARCHAR(100) NOT NULL,
CAPTION VARCHAR(150) NOT NULL,
SAVE_NAME VARCHAR(100),
ID_ITEM_TYPE INTEGER
);
suspend;
end^
Выдает на CREATE TABLE table_name (
Ega23 (2010-05-18 13:54:00) [1]
> Потому что это неправильно.
Речь идёт не об идеологической составляющей. Правильно-неправильно - это тема отдельного холисрача.
turbouser (2010-05-18 13:52:00) [2]
> Ega23 © (18.05.10 13:43) [6]
>
>
> > А в ХП DDL-запросы вообще допустимы? Что-то мне сомнительно.
>
> через execute statement - почему нет?
>
Потому что это неправильно. Да и вообще, костыль "execute statement" создавался не для этого. Кстати, когда-то обещали его убрать..
Ega23 (2010-05-18 13:43:00) [3]
> А в ХП DDL-запросы вообще допустимы? Что-то мне сомнительно.
через execute statement - почему нет?
Медвежонок Пятачок (2010-05-18 13:41:00) [4]сакральный смысл данной ХП создавать таблицу с заданным именем
А в чем сакральный смысл создавать таблицу процедурой?
Тем более что явный ддл внутри процедуры недопустим.
Sergey13 (2010-05-18 13:35:00) [5]> [0] Irissss (18.05.10 12:42)
> где ошибка
Действительно, где ошибка?
А в ХП DDL-запросы вообще допустимы? Что-то мне сомнительно.
Ega23 (2010-05-18 13:14:00) [6]
> Не могу понять что?
Я уже ответил.
Irissss (2010-05-18 12:55:00) [7]сакральный смысл данной ХП создавать таблицу с заданным именем
Работаю через IBExperts, а он мне говорит, что не правильно. Не могу понять что?
SET TERM ^ ;
CREATE OR ALTER PROCEDURE NEW_PROCEDURE (
table_name char(30) not null)
as
begin
CREATE TABLE table_name (
ID INTEGER NOT NULL,
NAME VARCHAR(100) NOT NULL,
CAPTION VARCHAR(150) NOT NULL,
SAVE_NAME VARCHAR(100),
ID_ITEM_TYPE INTEGER,
FACT_USING INTEGER DEFAULT 0,
FACT_ENABLE INTEGER DEFAULT 0,
FACT_VISIBLE INTEGER DEFAULT 0,
PLAN_USING INTEGER DEFAULT 0,
PLAN_ENABLE INTEGER DEFAULT 0,
PLAN_VISIBLE INTEGER DEFAULT 0,
IS_ADD_SEPARATOR_AFTER INTEGER DEFAULT 0,
COLOR VARCHAR(10) DEFAULT 'clNone'
);
suspend;
end^
SET TERM ; ^
Ega23 (2010-05-18 12:47:00) [8]Вот тут товарищи подсказывают, что нужен execute statement '.....'
А в чём сакральный смысл данной ХП?