|
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474
|
|
Отслеживание изменений в БД10.12.2012, 13:30. Показов 5341. Ответов 49
Метки нет (Все метки)
Есть БД, к которой подключено несколько клиентов. Каждый из них имеет компоненты "DataSource", "ADOConnection" "ADOTable", "DBGrid". Тут рррраз, и в таблицу, к этому всему хозяйству привязанную добавилась строка. Как отследить это дело, чтобы его обработать? Например "DataSource" умеет обрабатывать событие "OnUpdateData". Подойдет? Как это юзать? Самый сложный вопрос: А можно ли об изменении уведомить только одного подключенного юзера?
0
|
|
| 10.12.2012, 13:30 | |
|
Ответы с готовыми решениями:
49
Отслеживание изменений отслеживание изменений |
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 13:47 | |
|
Kabak,Встроенных средств нет. Можно триггеры before update, before delete на кажой таблице и в дополнение поле lastmodified типа TIMESTAMP. (это с форума)
newline, краткая документация - http://msdn.microsoft.com/ru-r... 80386.aspx извеняюсь за внешнею ссылку
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 13:50 | |
|
Причем тут компы? это делается на стороне сервера.
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 13:55 | |
|
Oxotnuk, ааа... понятно... Тогда точно есть
Формально, та же таблица, только по другому созданная. newline, самое неправильное было бы анализировать текстовые логи. Либо один единый лог на общем ресурсе, либо куча логов от каждого пользователя... вообще не метод ни разу
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 13:59 | |
|
Alex_ZS, ну впринципе да, только - не изобретать велосипед, а все работает и красиво
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 14:06 | |
|
Важно не то что бы красиво, а быстро и функционально. Запрос на выборку одной строки из таблицы изменений быстрее чем запрос на на анализ текстового лога
Аудит на MS SQL сервере - это текстовый файл. А нужно такое счастье, если необходимо просто знать, что данные в таблице изменились?
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 14:23 | |
|
Я думаю,что в MS SQL,так как и в других СУБД - файл это выходной файл.
Оригинал это 99% таблица ![]() Просто MS SQL не щупал.
0
|
|
|
|
|
| 11.12.2012, 14:37 | |
|
Кто-нить может на русском пояснить суть этих триггеров ? понятно что они что-то далают если с базой что-то происходит (Insert, Edit и т.д.), но что именно они делают, где это фиксируется и как прочитать то что сделал триггер ?
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 14:42 | |
|
Вообще аудит штука сильно спорная на мой взгляд. Много ограничений, сложно в настройке, и вообще зачем огород городить для очевидных вещей
"Чтобы создать, изменить или удалить аудит сервера, участникам требуется разрешение ALTER ANY SERVER AUDIT или CONTROL SERVER." - не каждому пользователю такое позволено ![]() "Администраторы компьютера с SQL Server должны учитывать, что локальные параметры журнала безопасности могут быть переопределены политикой домена." - а даже если и позволено... потом по-любому придется писать Transact-SQL... ну не стоит оно того, из пушки по воробъям... ![]() Добавлено через 2 минуты Kabak, http://msdn.microsoft.com/ru-r... 89799.aspx
1
|
|
|
|
|
| 11.12.2012, 14:43 | |
|
Я так понял, что триггер может что-то проделать с базой, например, сохранить что-нибудь в одной из таблиц по наступлению какого-то события с базой. Иными словами, MySQL сама будет вносить в служебную таблицу данные об изменениях, которые я укажу в триггере. Альтернатива триггерам - программа работающая с базой данных может сама заполнять служебную таблицу.
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 14:45 | |
|
Kabak, "Триггер — это особая разновидность хранимой процедуры, выполняемая автоматически при возникновении события на сервере базы данных." источник выше
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 14:53 | |
|
Alex_ZS, Аудит штука замысловатая,но очень при очень полезная,если сервер несет важну информацию.
Да и впринципе книги про аудит и тонкую его настройку - я не читал, но возводил на серверах, за день осознать принцип работы можно,и в будующем будет очень полезно ![]() Как по мне,проще один раз осознать и возвести его за 15 минут в последующие разы, чем ,вот таким способом извращаться
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 14:57 | |
|
Kabak, для таких же целей,можно сделать шатдулер
))в mysql 5.1 появился.
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 14:58 | |
|
Kabak, Ну раз охота пуще неволи... :-D
Тогда покопай в этом направлении: "Компания McAfee разработала открытый плагин для организации процесса аудита MySQL, позволяющего проконтролировать все действия пользователей СУБД. ... Поддерживаются ветки MySQL 5.1 и 5.5" ну и типа того что нибудь Oxotnuk, такой MS подход нагромоздить сущностей в простом месте
0
|
|
|
|
|
| 11.12.2012, 15:03 | |
|
Мне проще написать мой собственный Trigger чем разбираться с плагинами компании McAfee
![]() А именно: создам служебную таблицу и тот комп который внёс изменения в базу записывает строку в эту служебную таблицу: кто вносил изменения, когда вносил, и подписывается под этим логом, что номер компа такой-то обновился. как только все подписались - лог удаляется из служебной базы как-то так.
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 15:14 | |
|
Kabak, 5 баллов! Я то же и пытаюсь сказать, что проще не связываться со стандартным аудитом :-D
Добавлено через 7 минут У меня есть программулина, которая динамически отслеживает параметры. Но беда в том, что она под разными базами работает (ORACLE, MS SQL, MySql, SQL Lite) Там есть именно таблица изменений и таблица логов. Прикручивать стандартный аудит нереально, плюс юзеры в больших компаниях сильно ограничены в системных правах, никто им не даст роли CONTROL SERVER
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 15:15 | |
|
Да,но из за этого все наши системы так работаю "стабильно".
Простите не удержался
0
|
|
|
4 / 4 / 0
Регистрация: 07.12.2012
Сообщений: 21
|
|
| 11.12.2012, 15:23 | |
|
Oxotnuk,
Спасибо, напоминает прикручивание аудита!Добавлено через 4 минуты Кстати... автор темы наверное уже сам все придумал без нас
0
|
|
|
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
|
|
| 11.12.2012, 15:25 | |
|
Мое дело дать вам совет(как dba работающий с огромными комплексами) а ваше,уже решать,что куда и как кому прикручивать
0
|
|
| 11.12.2012, 15:25 | |
|
Помогаю со студенческими работами здесь
40
отслеживание изменений Отслеживание изменений Отслеживание изменений Отслеживание изменений БД Отслеживание изменений в TextBox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|