![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запросы на изменение системных таблиц. [D5, IB6.x, FireBird]
Карелин Артем © (2003-06-16 11:00:00)Надо мне делать запросы типа
update rdb$roles set RDB$OWNER_NAME = null
илиRDB$TRIGGERS set RDB$TRIGGER_SOURCE = null
Выполняю запросы, а данные не меняются. Но в EMS вручную можно перебирать записи и обнулять нужные поля.
Как заставить нормально отрабатывать такие запросы?
Карелин Артем (2003-06-25 12:19:00) [1]Zacho © (25.06.03 12:11)
Неисповедимы глюки господни.
Zacho (2003-06-25 12:11:00) [2]Заинтересовала меня эта ерунда, только что проверил. Сделал маленькое приложение на IBX - IBDataBase, IBTransaction, IBSQL.
В IBSQL запрос UPDATE RDB$TRIGGERS SET RDB$TRIGGER_SOURCE="" WHERE RDB$SYSTEM_FLAG=0.
По нажатию на кнопку стартуется транзакция, делается IBSQL.ExecQuery и IBTransaction.Commit
Все нормально отработало, RDB$TRIGGER_SOURCE очистилось.
Так что попробуй поставить последний апдейт IBX. Или все-таки IBX здесь вообще ни причем, а где-то у тебя ошибка в коде. Проверь еще раз, ты точно Commit делаешь ?
Карелин Артем (2003-06-16 13:41:00) [3]>Не понял.. UPDATE что-ли из ХП делал
и так тоже.
>Что такое EMS ? QuickDesk что-ли ? А разве он еще жив ?
Жив, я им давно пользуюсь. Последней халявной версией.
Zacho (2003-06-16 13:33:00) [4]
> Карелин Артем © (16.06.03 13:24)
Что такое EMS ? QuickDesk что-ли ? А разве он еще жив ?
> как sql-скрипт и хранимую процедуру
Не понял.. UPDATE что-ли из ХП делал ?
Все-таки я уверен, что и в FB это должно отлично работать. Только текст системных триггеров удалить нельзя.
Карелин Артем (2003-06-16 13:24:00) [5]А у меня огненная птичка и проверил я в EMS как sql-скрипт и хранимую процедуру.
Видимо птичка имеет значение.
Zacho (2003-06-16 13:17:00) [6]
> Карелин Артем © (16.06.03 13:13)
Никакими. Я это только что проверил в IBExpert. Правда, у меня Yaffil, но не думаю, что это имеет значение.
Карелин Артем (2003-06-16 13:13:00) [7]Zacho © (16.06.03 13:09)
Сделал. А ты какими компонентами пользовался?
Zacho (2003-06-16 13:09:00) [8]
> Карелин Артем © (16.06.03 13:01)
Ну, не знаю, у меня - работает. Может ты просто коммит не сделал ?
Alexandr (2003-06-16 13:02:00) [9]:)
Карелин Артем (2003-06-16 13:01:00) [10]Zacho © (16.06.03 12:54)
Пришел без ошибок и без обновлений таблицы однако.
Zacho (2003-06-16 12:54:00) [11]UPDATE RDB$TRIGGERS SET RDB$TRIGGER_SOURCE="" WHERE RDB$SYSTEM_FLAG=0 - такой запрос пройдет
Alexandr (2003-06-16 12:51:00) [12]есть утилита IBClear
вот и посмотри ее...
Карелин Артем (2003-06-16 12:46:00) [13]Danilka © (16.06.03 12:42)
У меня большие сомнения насчет этой команды, ибо он при этом долже еще и компиллироваться. А мне надо очистить текст и оставить BLR. Ну и еще несколько подобных запросов к другим таблицам выполнить.
Danilka (2003-06-16 12:42:00) [14]Карелин Артем © (16.06.03 12:26)
а не проще ли стандартными средствами?
alter trigger XXX as;
или так не катит?
Карелин Артем (2003-06-16 12:38:00) [15]Alexandr © (16.06.03 12:36)
А что? Есть принципиальная разница?
Alexandr (2003-06-16 12:36:00) [16]а, ну это нормально должно быть.
А почему null а не просто ""?
Карелин Артем (2003-06-16 12:26:00) [17]Alexandr © (16.06.03 12:06)
Заметь: очистить хочется текст триггеров (хранимых процедур, пояснений разных), а не чего-то страшного-ужасного.
Alexandr (2003-06-16 12:06:00) [18]граблей мало? Захотелось новых ощущений?
Карелин Артем (2003-06-16 11:40:00) [19]Ну или выдает запросы типа action cancelled by trigger (0) to preserve data integrity
cannot modify or erase a system trigger
Хотя "Ручками" в EMS можно обнулять данные поля.