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

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

Запросы на изменение системных таблиц. [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 можно обнулять данные поля.


Наверх

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