![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Лог изменений в таблице
Devourer © (2003-11-24 14:36:00)
Есть таблица DBF.Юзеры меняют ее(добавляют,изменяют, удаляют записи).
Надо вести лог такого вида:
(дата)(время) (изменение) записи (ID записи)
Ясно, что прога резидентная, обновления по таймеру.Вопрос в главном- как отслеживать изменения?(хранить последнюю копию таблицы и сравнивать с ней?)или есть более быстрые пути?
Спасибо
Oleg_em (2003-11-24 15:19:00) [1]
если ни в одном поле DBF-ки нет данных о времени внесения изменений то тока одно:
1. делать копию текущей базы скажем BACK_OLD.dbf
2. через 10 минут делать новую копию BACK_NEW.dbf
3. сравнивать каждую запись по нужным полям, делать отчет об изменениях
4. копировать BACK_NEW в BACK_OLD
5. итти на пункт 2
а записей то много ?
Devourer (2003-11-24 15:17:00) [2]
Спасибо, Reindeer Moss Eater.
Значит я на верном пути
Reindeer Moss Eater (2003-11-24 15:14:00) [3]
Я бы не стал оперировать непосредственно с этой таблицей.
Импортнул бы ее (например на SQL сервер).
Далее выяснил бы все произошедшие изменения по сравнению с предыдущим импортом (скорее всего прямо на сервере)
Ну и сформировал бы документы
Devourer (2003-11-24 15:10:00) [4]
> Reindeer Moss Eater © (24.11.03 15:05) [15]
> Тогда лучше ничего не мониторить, а запускать формирователь
> по расписанию
Согласен, но это не принципиально(частота раз в 10 мин меня устраивает)
Вопрос так и остался - как выделить измененные записи
Reindeer Moss Eater (2003-11-24 15:05:00) [5]
Тогда лучше ничего не мониторить, а запускать формирователь по расписанию
Devourer (2003-11-24 15:04:00) [6]
Эх если б можно было б сменить техпроцесс- не надо было бы огород городить.
Клипперская прога -базовая система, а я к ней надстройку леплю.
И саму таблицу я не меняю - только снимаю изменения.
DenK_vrtz (2003-11-24 15:00:00) [7]
>Структуру таблицы менять нельзя,а надо каким-то образом вычислять что юзеры начудили в ней
может лучше прогу без чудес написать?
Reindeer Moss Eater (2003-11-24 14:59:00) [8]
Может тогда сменить весь техпроцесс?
Зачем программа на клиппере? Только для ввода данных в таблицу, что бы потом по этм данным сформировать новые документы?
Кстати, в этой же таблице?
Reindeer Moss Eater (2003-11-24 14:56:00) [9]
и по результатам изменений формировать новые документы.
В чьей программе должны формироваться новые документы?
Devourer (2003-11-24 14:56:00) [10]
> В чьей программе должны формироваться новые документы?
в моей
Devourer (2003-11-24 14:52:00) [11]
мешать конечно хотелось бы как можно меньше -потому и задаю вопрос
Devourer (2003-11-24 14:50:00) [12]
> Reindeer Moss Eater © (24.11.03 14:43) [5]
> Ага. Щазз.
> Ему надо в своей программе вести лог изменений вносимых
> третьей программой
Вы все правильно поняли
Reindeer Moss Eater (2003-11-24 14:49:00) [13]
И ради этого ты будешь мешать работе самих пользователей?
Devourer (2003-11-24 14:47:00) [14]
нужен не лог как конечная цель - это скорее побочный эффект.
Смысл вкратце в следующем: есть клипперская прога, в которой формируются документы в виде записей в табл.
Структуру таблицы менять нельзя,а надо каким-то образом вычислять что юзеры начудили в ней скажем, за последние 5 минут, и по результатам изменений формировать новые документы.
Reindeer Moss Eater (2003-11-24 14:43:00) [15]
Ага. Щазз.
Ему надо в своей программе вести лог изменений вносимых третьей программой
Stas (2003-11-24 14:41:00) [16]
На событие BeforeDelete записываешь в спец. таблицу нужные параметры, на BeforeEdit и т.д. Получается своего рода триггер.
Reindeer Moss Eater (2003-11-24 14:40:00) [17]
Смысл твоей задумки в чем? Что это даст кроме помехи для пользователей?
Devourer (2003-11-24 14:39:00) [18]
> Reindeer Moss Eater © (24.11.03 14:38) [1]
> И в чем смысл?
жизни?
Reindeer Moss Eater (2003-11-24 14:38:00) [19]
И в чем смысл?