С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.59/17: Рейтинг темы: голосов - 17, средняя оценка - 4.59
newline
97 / 9 / 0
Регистрация: 21.02.2011
Сообщений: 298
1

Отслеживание изменений в БД

10.12.2012, 13:30. Просмотров 3210. Ответов 49
Метки нет (Все метки)

Есть БД, к которой подключено несколько клиентов. Каждый из них имеет компоненты "DataSource", "ADOConnection" "ADOTable", "DBGrid". Тут рррраз, и в таблицу, к этому всему хозяйству привязанную добавилась строка. Как отследить это дело, чтобы его обработать? Например "DataSource" умеет обрабатывать событие "OnUpdateData". Подойдет? Как это юзать? Самый сложный вопрос: А можно ли об изменении уведомить только одного подключенного юзера?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 13:30
Ответы с готовыми решениями:

Отслеживание времени
Суть задачи такова, мне надо записать время при выполнении операции, после чего...

Отслеживание нажатия клавиш
здравствуйте форумчане! подскажите пожалуйста, как сделать что бы при...

Постоянное отслеживание состояние процесса
Как сделать так, чтобы во время выполнения программы ВСЕГДА отслеживался...

Отслеживание запуска полноэкранного приложения
Требуется отследить запуск полноэкранного приложения. Т.е. при запуске...

TScrollBar - некорректное отслеживание позиции
Добрый день всем! Может кто сталкивался с компонентом ScrollBar в РАД студии? ...

49
Alex_ZS
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
10.12.2012, 16:01 2
"OnUpdateData" не увидит изменений на сервере
0
newline
97 / 9 / 0
Регистрация: 21.02.2011
Сообщений: 298
10.12.2012, 16:07  [ТС] 3
А решение?

Добавлено через 39 секунд
Я не обнаружил в компонентах ничего похожего.
0
Alex_ZS
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
10.12.2012, 16:23 4
я не придумал ничего лучше, чем перезачитывать данные с сервера по таймеру. Могут быть вариации на тему того, что зачитывать. Например какую-нибудь сервисную таблицу, в которой работающий экзампляр может писать сервисную информацию, анализируя которую, клиент может принимать решение перезачитывать данные или нет.
0
newline
97 / 9 / 0
Регистрация: 21.02.2011
Сообщений: 298
10.12.2012, 16:34  [ТС] 5
Вряд ли. При таком сценарии надо "помнить" весь контент этой ДБ. Что там в ней было.
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
10.12.2012, 16:50 6
Вот может это поможет
Вести Log изменений базы
1
newline
97 / 9 / 0
Регистрация: 21.02.2011
Сообщений: 298
10.12.2012, 16:50  [ТС] 7
Еппрст! Все. Рабочий день в пампасы... Точно!
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
10.12.2012, 16:59 8
Цитата Сообщение от newline Посмотреть сообщение
Еппрст! Все. Рабочий день в пампасы... Точно!

Не по теме:

Всмысле?

0
Alex_ZS
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
10.12.2012, 17:03 9
Зачем? Допустим есть таблица, в которой хранятся имена всех таблиц и время последнего изменения. По таймеру опрашиваем есть ли изменения (любые). Если есть - перезачитываем.
А когда сами правил таблицу с данными, обновляем эту таблицу
0
newline
97 / 9 / 0
Регистрация: 21.02.2011
Сообщений: 298
10.12.2012, 17:06  [ТС] 10
Цитата Сообщение от Sasha Посмотреть сообщение

Не по теме:

Всмысле?

В том смысле что устал и соседней строчки не заметил.
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
10.12.2012, 17:58 11
Самое простое: создать в базе ещё одну служебную таблицу и в ней фиксировать время последнего изменения в любой таблице базы, ну и если нужно , кто менял и что менял... Вопрос только, как распознать что все клиенты обновились и время чистить эту служебную статистику...

Можно по сети рассылать сообщения другим клиентам, что я изменяю то-то и то-то - обновляемся... Это уже сложнее, что-то вроде сетевого, служебного, чата нужно писать...

Добавлено через 7 минут
Клиент-сервер однако светит...
0
Alex_ZS
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
11.12.2012, 10:33 12
А зачем ее чистить? Размерность таблицы изменений будет фиксированной, а логи конкретных изменений надо хранить в отдельной таблице, если это необходимо.
0
Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
11.12.2012, 12:53 13
А зачем делать всякие эти таблицы? мб я чего то не так понял конечно...
Но почему бы не использовать просто АУДИТ?
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
11.12.2012, 12:57 14
что такое "АУДИТ" ?
0
Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
11.12.2012, 13:03 15
Аудит — это сочетание в едином пакете нескольких элементов для определенной группы действий сервера или базы данных. Компоненты подсистемы аудита SQL Server совместно формируют выходные данные, называемые аудитом, аналогично тому, как определение отчета в сочетании с элементами графики и данных формирует отчет.
Вообще потом можно посмотреть,что,где,когда и кто сделал (del,ins,upd)
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
11.12.2012, 13:22 16
plugin что ли ?
0
Alex_ZS
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
11.12.2012, 13:24 17
А где то написано что эта БД поддерживает аудит? Аудит находиться по умолчанию в выключенном состоянии, если он вообще может существовать. Мож это база из кучи DBF?
0
Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
11.12.2012, 13:27 18
Kabak, нет не плагин шестеренка серверов. (Все жирные сервера имеют аудит)

Alex_ZS, из логики вещей,он раньше темы открывал про MS SQL, вот и вывод у меня такой
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
11.12.2012, 13:32 19
как в MySQL им пользоваться ?
0
newline
97 / 9 / 0
Регистрация: 21.02.2011
Сообщений: 298
11.12.2012, 13:40  [ТС] 20
Эммм.. Я использую MS SQL. Постараюсь найти информацию о этом АУДИТЕ. Ответ по данной теме тут: Вести Log изменений базы Спасибо, Sasha.
0
11.12.2012, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 13:40

Отслеживание подключения флешки по USB
Такой вопрос: чем увидеть подключаемую к компу флешку USB, где в реестре об...

Отслеживание момента установки драйверов в Windows
Доброго времени суток! Имеется программа и устройство, подключаемое по USB....

Обработка сообщений/событий. Отслеживание в оборудовании
Мне необходимо отслеживать изменения в составе оборудования. Весь день лажу по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru