Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Как получить скрипт вставляемой запись в БД через 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.029 c
2-1155798441
KyRo
2006-08-17 11:07
2006.09.10
Не выключается виндовс с запущеной программой


15-1155587414
lookin
2006-08-15 00:30
2006.09.10
Сны


1-1153991453
mega83
2006-07-27 13:10
2006.09.10
Определение Офиса


1-1154181099
Destroyer
2006-07-29 17:51
2006.09.10
Строковый тип и nil


9-1134513921
GameMak
2005-12-14 01:45
2006.09.10
Аппроксимация