|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
Ведение лога изменений в некоторых таблицах базы31.10.2018, 21:25. Показов 2001. Ответов 4
Метки нет (Все метки)
Добрый день.
Возник вопрос добавить в базу что-то вроде автоматического ведения лога вносимых в некоторые таблицы изменений. Заказчик видит это чем-то вроде: "обычного ТХТ-файла со строками вида Дата/ время/ таблица/ ключевое поле/ поле в котором проводились изменения/ старое значение/ новое значение" Мне раньше не приходилось подобным заниматься, поэтому с самого начала возникла куча мыслей по поводу того, не будет ли это "книгой о написании книги", ведь если не ограничить какими-то пределами подобное "протоколирование", то можно уйти в рекурсию и вести базу о том, как мы ведем базу)... Еще меня смущает мысль о текстовом файле лога, не будет ли запись в файл изменений в реальном времени тормозить работу с базой (ну мало ли, я не сильно знаком с этими моментами...). Может, проще вести этот учет в отдельной таблице самой базы, и при надобности выгружать ему в ТХТ?.. Также практический вопрос кода: это что, нужно будет на формах на каждый контрол вешать на событие После обновления код, который будет ловить изменения и фиксировать?.. Других вариантов как-то и не вижу... Брр. Буду очень признателен за мысли и советы по поводу того, как наиболее правильно это организовать.
0
|
|
| 31.10.2018, 21:25 | |
|
Ответы с готовыми решениями:
4
Ведение лога ошибок, отправка лога на e-mail Ведение лога bat
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 31.10.2018, 23:30 | |
Сообщение было отмечено Kkarn как решение
Решение
1. Лог пишется в таблицу БД. При необходимости экспортируется в любой внешний формат - текстовый файл, Excel и прочая.
2. Как правило заказчика интересуют только определенные, значимые поля. И только на них надо писать лог. 3. При входе в запись (событие Текущая запись /Current/) можно в цикле по полям считать имеющиеся данные в массив. Тем самым сохранить начальные данные записи. Также надо обнулить переменную уровня модуля формы, указывающую была ли редакция записи 4. На событии Dirty формы задать True переменной, указывающей была ли редакция записи 5. На событии После обновления формы (AfterUpdate) считать в цикле данные с формы и сравнить с массивом начальных значений. Поля, где есть разница, записывать в лог. Вообще говоря, на форуме тема логов затрагивалась неоднократно. Не говоря уже о инете в целом... Только поискать.
1
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
|
| 01.11.2018, 08:34 | |
|
1. По поиску: нажимаем сверху кнопку Поиск, в открывшемся списке выбираем Расширенный поиск. Слева сверху в открывшемся окне пишем "Лог изменений", справа выбираем СУБД МС Аксцесс, внизу - начать поиск.
2. Вот одна из ссылок с примерами логов: История изменений в БД
1
|
|
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 01.11.2018, 09:26 [ТС] | |
|
mobile, Спасибо за хорошую инструкцию, все разложено идеально по полочкам. Принцип работы с переменной уровня модуля формы, указывающей на редактирование записи - помню, Вы мне его когда-то давно посоветовали по другому вопросу, тогда пригодилось).
alvk, спасибо, понял). А то здесь на форуме куча всяких разных поисков, не разбери поймешь. Помню, раньше было удобно: создаешь новую тему, пишешь заголовок - а тебе сайт сам предлагает несколько подобных вариантов, которые уже были на форуме, и иногда надобность в новой теме сама отпадает. А сейчас почему-то такого не замечаю.
0
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
||
| 01.11.2018, 09:30 | ||
|
конечно зря убрали, было удобно
1
|
||
| 01.11.2018, 09:30 | |
|
Помогаю со студенческими работами здесь
5
Ведение общего лога Ведение лога ошибок Правильное ведение лога в программе Ведение лога приложения (log4j на Lotusscript) Ведение лога смены значений в поле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|