Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.02;
Скачать: CL | DM;

Вниз

Что-то вроде триггера для dbf   Найти похожие ветки 

 
sers   (2002-12-11 13:29) [0]

Есть чужая программа - работает с dbf, исходников нет. В ее dbf-ке я создал еще одно поле - текстовое. Смысл следующий - необходимо чтобы при вставке каждой записи в эту таблицу в мое поле проставлялся текущий пользователь, то есть тот логин под которым пользователь вошел в Windows.

Можно ли в чужой dbf-ке отловить момент вставки новой записи и соответственно updat-ить необходимую запись ?

Если нельзя выцепить запись - можно конечно сделать так:

update table set author=CurrentUser where author=""

Но как поймать момент вставки записи ?


 
Johnmen ©   (2002-12-11 13:58) [1]

> Но как поймать момент вставки записи ?

А кто, по-твоему, должен ловить ? Подумай над этим...


 
sers   (2002-12-11 16:19) [2]

Как кто. Моя прога. Вторая.

Например можно по таймеру отслеживать размер файла и если он увеличился запись вставлена. Хотя записи могут кэшироваться и это дело не пойдет.

Похоже что ничего тут не поделаешь


 
Digitman ©   (2002-12-11 16:37) [3]


> sers


Есть еще такое понятие как "транзакция". И если эта самая "чужая прога без исходников" хоть сколь-либо расчитана на многопользовательский режим доступа к базе на файл-сервере, она должна поддерживать хоть какой-то механизм транзакций.

В этой связи основным моментом является то, что при использовании транзакционного механизма запись считается успешно вставленной только в том случае, если транзакция выполнена успешно и подтверждена клиентом. В противном случае физически добавленная запись в контексте стартованной транзакции будет помечена как удаленная, если транзакция была откачена в результате каких-то коллизий в бизнес-логике. Иными словами, даже если тебе каким-то способом удастся реализовать триггер, то достоверность его срабатывания будет весьма сомнительной из-за необходимости еще и отслеживать каким-то образом результаты ВСЕХ выполнившихся успешно/неуспешно транзакций



 
dimis   (2002-12-11 17:12) [4]


> Digitman © (11.12.02 16:37)

c каких это пор в Paradoxе появились транзакции?

> sers
IMHO
вариантов два .
либо переписать программу
либо экспортировать таблички в другую СУБД ,где есть тригеры(например InterBase)
если программа написана нормально, то проблем возникнуть не должно


 
Roki   (2002-12-11 17:23) [5]

dimis прав - переписать прогу самый лучший выход. Разберись со структурой БД и впред!


 
Digitman ©   (2002-12-11 17:30) [6]

>dimis

С каких пор я упоминал при произнесении слова "транзакция" слово "Paradox" ?

Если уж на то пошло, то т/а в в этом случае "эмулируется" объетом BDE.TDatabase на базе *.lck- структур, создаваемых тем же Парадоксом



Страницы: 1 вся ветка

Текущий архив: 2003.01.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
3-1756
Opryshok
2002-12-11 14:26
2003.01.02
Как работать с набором данных в DataSet


14-1915
LongIsland
2002-12-15 12:34
2003.01.02
Чем отличается программист от политика?


1-1821
Alexaniok
2002-12-20 20:57
2003.01.02
Как запустить консольное приложение из Delphi?


6-1847
Дмитрий К.К.
2002-11-04 18:25
2003.01.02
Как грамотно обработать событие OnProgressChange у WebBrowser а?


14-1890
NaPoleOn_IV
2002-12-13 21:49
2003.01.02
Все говорят, но я не могу найти