Вопрос сохранения истории изменений

Daulet
Дата: 21.12.2011 21:16:38
Поковырял форум, но подходящего ответа не нашел.
Суть такова.

Необходимо при редактировании записей справочника формировать отчет, в котором отражаются старые данные и только те поля, которые редактировались. Т.е. есть табличка клиентов, у которых ФИО, адрес, телефон. Например, поменялся телефон - выдается отчет в котором в верхней части указаны старые данные ФИО, адрес, телефон, в нижней части такой же список полей, но те поля, которые не изменились ФИО, адрес - значение Null, а в поле телефон - новый телефон.

Ума не приложу, как сделать. Сначала попытался сделать дублирование данных - запись дублируется, старой записи метку "старая", новой "актуальная". А каким запросом вытащить изменившиеся поля? Попытался продублировать третью запись - "изменившиеся данные", в которых все поля Null кроме тех, которые изменились - уперся в ту же проблему отловить поля которые поменялись. Запрос на обновление записи "актуальная" затрет нулевыми значениями неизменившиеся данные.

Читал про хранение реквизитов справочника в отдельной таблице - id клиента, id реквизита, значение. А как быть с полями разного формата? Ведь поле "значение" имеет только один формат (предположим текстовый), а у меня там и даты рождения, формат дата. Гонять все в текст? А кошернее вариант есть?

В общем голову сломал. Не подскажете кто как решал проблему?
mds_world
Дата: 21.12.2011 21:22:50
Триггер Бенедикта - Злоумышленник.
Daulet
Дата: 21.12.2011 22:35:40
mds_world,

А попроще решения нет? Пример Бенедикта скачал - нихрена не понял как работает.
alvk
Дата: 22.12.2011 09:46:27
Daulet,

см. defaultvalue и перебор контролов на форме.
alvk
Дата: 22.12.2011 09:47:06
alvk,

вернее oldvalue. чё это я?
Daulet
Дата: 22.12.2011 11:50:48
alvk,

Спасибо огромное, как раз то что нужно! :)