Форум: "Базы";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
ВнизКак получить скрипт вставляемой запись в БД через FIB+ ? Найти похожие ветки
← →
WhiteBarin © (2006-07-06 12:44) [0]Когда пользователь вставляет новую запись или удаляет или изменяет, как получить скрипт который поступает на сервер
← →
Johnmen © (2006-07-06 12:49) [1]Зачем?
Подглядываем за пользователем?
← →
Desdechado © (2006-07-06 12:54) [2]получить где? на сервере, на клиенте, посередине?
← →
WhiteBarin © (2006-07-06 12:56) [3]Не программа должна создавать скрипт, слежение за изменениями в таблице.
т.е. если кто-то вставил запись изменил или удалил должен быть сформирован файл скрипт этих изменений
← →
WhiteBarin © (2006-07-06 12:57) [4]На клиенте например но это не стольк важно вопрос то общий следить за таблицей
← →
Desdechado © (2006-07-06 13:02) [5]а не проще на важные таблицы повесить триггеры AFTER, которые будут долбить протокол изменений?
и все в одном месте, не надо собирать у пользователей.
← →
_RusLAN © (2006-07-06 13:56) [6]> На клиенте например но это не стольк важно вопрос то общий
> следить за таблицей
блин, 4 раза перечитывал чтоб понять. Пользуйтесь запятыми, уважаемый.
А по сабжу то [5]Desdechado
+1
Можете посмотреть как IBExpert делает протоколирование таблиц. Может это как раз вам и надо, и ничего делать вообще не придется.
← →
WhiteBarin © (2006-07-06 14:08) [7]Извеняюсь за синкаксис, с AFTER как вариант (в первую очередь его я и рассматривал).
Минусы AFTER:
- не ясно какая запись удалилась изменилась или добавилась;
- если происходило изменение не ясно какие именно поля поменял пользователь;
Если есть предложения по поводу реализации через AFTER, так же будет интересно послушать.
А как IBExpert делает протоколирование? Где посмотреть?
← →
_RusLAN © (2006-07-06 15:02) [8]> А как IBExpert делает протоколирование? Где посмотреть?
Открываете таблицу
На панели инструментов (слева) будет такой выпадающий список "Таблица"
нажимаете на него
выбираете "Подготовить таблицу к протоколированию"
выбираете какие операции и какие столбцы протоколировать
Чтобы посмотреть результат работы
меняеете какое-то поле в таблице (в той таблице и то поле которое было отмечено вами для протоколирования)
Дальше на вкладке "Протокол" (Когда открыта таблица вверху есть вкладки "Поля"..."Данные"..."Протокол") выбираете временной диапазон и получаете список всех изменений для даной таблицы:
кто, когда и какое поле изменил, какое было старое значение этого поля и какое новое.
← →
WhiteBarin © (2006-07-06 15:12) [9]:) Спасибо огромное видимо эта функция как раз мне и подходит, я только что с ней разобрался осталось вытаскивать из таблиц протокол и формировать на его основе скрипт благодарю и никакого слежение на уровне Delphi только на уровне СУБД это круто, как раз у меня возникла идея реализовывать это через триггеры на уровне СУБД а IBExpert это уже умеет круто то как благодарю
← →
_RusLAN © (2006-07-06 15:28) [10]> [6] _RusLAN © (06.07.06 13:56)
> [9] WhiteBarin © (06.07.06 15:12)
Всегда пожалуйста.
Но запятых и точек все равно маловато :))
← →
Desdechado © (2006-07-06 15:28) [11]> не ясно какая запись удалилась изменилась или добавилась;
На которую сработал триггер.
> если происходило изменение не ясно какие именно поля поменял пользователь;
Сравнивай значения old и new для полей.
← →
WhiteBarin © (2006-07-06 15:35) [12]Все очень прикольно решается через IBExpert, уже разобрался осталось только написать процедуру SQL которая возвращает скрипт прошедших событий, очень все круто получилось, а на уровне Delphi тоже нормально получается но не так как на уровне базы данных и IBExpert
← →
unknown © (2006-07-06 15:46) [13]
> WhiteBarin © (06.07.06 15:35) [12]
> Все очень прикольно решается через IBExpert
Настоятельно рекомендую трижды подумать о необходимости протоколирования-
бд будет пухнуть как на дрожжах и на производительности тоже скажется.
← →
WhiteBarin © (2006-07-06 15:56) [14]это очевидно, так как работают триггеры, и поэтому конечно же следует определить период хранения протокола, или после того как забрал протокол его подчистить или после того как прошло какое-то время его подчистить вот это уже вопрос реализации, а так спасибо
Интересно на сколько снизят производительность работы с таблицей тирггрера которые создал IBExpert?
← →
PEAKTOP © (2006-07-06 20:31) [15]Рекомендую задуматься о размере базы данных.
Мы вот как-то на одном заводе ставили ERP, и тоже наш архитектор включил в IBExperte эту опцию, когда отлаживали. А потом перед уездом забыл выключить.
А была в этой базе основная деревянная таблица справочник, которая хранила заказы со всеми спецификациями, узлами, деталями, заготовками, материалами .... в общем, 3 500 000 записей. И весила база 1,2 ГБ.
И решили мы через несколько дней реструктуризировать эту таблицу, чтобы оптимально было, чтобы база меньше весила. А про работающий триггер на update уже никто не помнил. И после оператора update ... all база стала 2,5 ГБ.
Ну, думаем, наверное - новые страницы. Делаем backup-restore. База стала 2,3 ГБ.
В общем, чуть не поседели, пока доперли откуда такой припрост базы взялся и что чистить надо. Но зато эта ситуация научила ставить логгер только на те таблицы, где это действительно надо.
это я к чему... подумай хорошенько, где действительно нужен логгер изменений, а где - "может ну его на фиг" ........
← →
Desdechado © (2006-07-07 10:28) [16]> И решили мы через несколько дней реструктуризировать эту таблицу
> про работающий триггер на update уже никто не помнил
Короткая же память у вас, непозволительно короткая. И как с вами еще кто-то работает?
Во время всяких сервисных операций триггеры протоколирования можно (и обычно нужно) отключать.
← →
WhiteBarin © (2006-07-07 14:11) [17]Согласен нужно всегда анализировать действия которые ты делаешь. Но и помнить о них нужно. Поэтому своевременнонужно чистить эти логи да и как правильно ты заметил выбирать правильно таблицы на которые ставить триггера слежения. Ну а так просто убойная штука, кстате только что я написал процедурку которая на основании данных в таблицах протоколирования делает скрипт. На входе имя таблицы на выходе скрипт изменений
← →
Андрей Пазик (2006-07-09 02:00) [18]Лог транзакций в FB отсутствует. Пока.
Но думаю, умудренные проктологи предложат вам решение, подкупающее своей глубиной (с) Ded
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.041 c