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

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

проблема с созданием тригера [D7, IB6.x]


Denis Tkachov ©   (2003-08-11 11:59:00) 

подскажите пожалуйста в чем тут может быть проблема?
пишу такой триггер
CREATE TRIGGER add_TV FOR TV_NAME after insert POSITION 10 AS
declare variable name varchar(100);
BEGIN
:name = mergename("t",id);
alter table tv add :name;
END
при попытке выполнить SQL генерируется исключение - "Token unknown - :"
(тут mergename(...) - UDF написана мною - "сливает" значение текстового параметра (первый параметр) с параметром типа integer - второй параметр и выдает строку, работает правильно, я проверял... )
в попытке выяснить источник ошибки, я пытаюсь выполнить такой код:
CREATE TRIGGER add_TV FOR TV_NAME after insert POSITION 10 AS
BEGIN
alter table tv add t1;
END
тут генерируется исключение - "Token unknown - alter"
хотя при выполнении кода "alter table tv add t1" вне тела тригера или процедуры никаких ошибок не возникает...
какие соображения будут?
Разве нельзя выполнять операторы ALTER TABLE в телах тригеров и процедур??


Desdechado   (2003-08-11 13:00:00) [1]

как сказал Zacho, изменение метаданных доступно лишь в скриптах - об этом честно написано в документации (см. Available in ... в любой команде)


Fiend   (2003-08-11 12:54:00) [2]

если в качесте имён используются зарезервированные слова, то надо бы их в кавычки взять(двойные ессесно)


Zacho   (2003-08-11 12:06:00) [3]

Операторы DDL в триггерах и ХП использовать нельзя. Да и смысла особого нет. Да и не в триггере запрос alter table tv add :name , где :name - параметр, работать не будет.


Наверх

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