Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1155926486
TImage1
2006-08-18 22:41
2006.09.10
Уменьшение изображения


1-1153733070
Mintos
2006-07-24 13:24
2006.09.10
OleContainer и Exel


15-1155621828
Parus
2006-08-15 10:03
2006.09.10
Вопросик по PHP


15-1155810652
imbalacedees
2006-08-17 14:30
2006.09.10
PHP


2-1156281523
ArtemESC
2006-08-23 01:18
2006.09.10
Содержимое консоли консольного приложения...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский