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

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

Interbase & Generator [IB6.x]


ploxish ©   (2003-12-01 11:23:00) 

Как удалить генератор в interbase 6.0?


Zacho   (2003-12-02 20:28:00) [1]

Читал я когда-то давно, или в fido7.su.dbms.interbase или в forums.demo.ru/epsylon.public.interbase, что DELETE FROM RDB$GENERATORS WHERE RDB$GENERATOR_NAME = "ИМЯ_ГЕНЕРАТОРА"
потенциально черевато чем-то неприятным, но вот точно в чем там дело - не помню. Естественно, это не касается FB и Ya


kaif   (2003-12-01 18:51:00) [2]

2 jack128 © (01.12.03 18:09) [7]
Скорее всего, ничего не будет. Будет сообщение об ошибке во время вызова триггера или процедуры:
"invalid request BLR at offset такой-то
generator такой-то not defined"


BlackKing   (2003-12-01 18:13:00) [3]

Nu eto ostaneca na sovesti udaljajushego :o)


jack128   (2003-12-01 18:09:00) [4]


> kaif © (01.12.03 15:56) [5]

А что будет если удаленный генератор используется в тригерах/процедурах там не написано?


Anatoly Podgoretsky   (2003-12-01 16:11:00) [5]

То есть они сами предлагают хакерские меры, а редактирование системных таблиц иначе не назвать.


kaif   (2003-12-01 15:56:00) [6]

Ну вы, блин, даете!
Генератор можно удалить совершенно спокойно, удалив соответствующую запись из системной таблицы RDB$GENERATORS.

Сделай SELECT * FROM RDB$GENERATORS и увидишь все свои генераторы.
Удалить любой из них можно простым
DELETE FROM RDB$GENERATORS
WHERE RDB$GENERATOR_NAME = "ИМЯ_ГЕНЕРАТОРА"

В клонах Yaffil и Firebird работает команда DROP GENERATOR.
В самом IB6.0 она не работает.
В документации по IB6.0 (Language Reference) ясно написано:

Note There is no “drop generator” statement. To remove a generator, delete it from the
system table. For example:
DELETE FROM RDB$GENERATOR WHERE RDB$GENERATOR_NAME = ‘EMPNO_GEN’;

И эта надпись висит в документации, начиная с IB4.*


Zacho   (2003-12-01 13:40:00) [7]

Нормальными способами - никак. "Хакерскими" - лучше не надо.


Vemer   (2003-12-01 11:48:00) [8]

Возможно генератор где-то используется, или попробуй backup - restore базы. А лучше переименуй и придумай ему другое использование :).


ploxish   (2003-12-01 11:35:00) [9]

выдает такую ошибку

Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 5
Generator
Statement: Drop Generator NAME_GEN


Vemer   (2003-12-01 11:26:00) [10]

1. Удалить его имя из всех триггеров/процедур.
2. Выполнить команду Drop Generator Имя_Генератора


Наверх

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