Dan70 wrote:Как бороться с кораптед данными в ДБ2?
Ситуация:
Чужое приложение периодически суёт пробелы, другие символы в поля таблицы типа Децимал. Та прога на РПГ нарисована, открывает таблицы, как обычные файлы.
Мне надо триггера повесить на эту табличку, что я и сотворил.
Но когда меняется рекорд, в котором хотя-бы одно такое поле корявое, триггер валится.
На этапе передачи ему ссылки на новые и старые данные (NEW ROW & OLD ROW) происходит похоже их валидация базой данных, которая и летит.
В теле триггера ни один эксепшн хэндлер не помогает, т.к. до него просто ход не доходит, всё раньше уже валится.
До кучи ещё и лог пишется непонятно куда, который разрастается.
Триггера должны быть системными, т.к. SQL триггера не работают, не позволяют той окоянной проге на РПГ открывать таблицы, как файлы.
РПГ прогу убрать, переписать нельзя, исправить кораптед рекорды не поможет, т.к. РПГ прога напихает их по-новой через некоторое время.
Как с этим бороться?
Есть-ли например хотя-бы какие установки не писать этот ЛОГ, чтобы диск не забивался, или чистить его по достижении какого-нить размера?
Возможно-ли как-нить предотвратить эту валидацию данных, ну чтобы она шла в триггер по ссылке со всем этим крапом?
Буду очень всем благодарен за советы
Никаких системных триггеров не существует.
У вас есть левая программа, которая портит базу данных путем прямой записи в факл - и что вы хотите ? Радуйтесь, что она ее вообще не стирает. "А мог бы и шашкой рубануть !"
Единственный способ не портить базу - не запускать эту программу. Ну или чистить за ней.