![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что-то вроде триггера для dbf
sers © (2002-12-11 13:29:00)Есть чужая программа - работает с dbf, исходников нет. В ее dbf-ке я создал еще одно поле - текстовое. Смысл следующий - необходимо чтобы при вставке каждой записи в эту таблицу в мое поле проставлялся текущий пользователь, то есть тот логин под которым пользователь вошел в Windows.
Можно ли в чужой dbf-ке отловить момент вставки новой записи и соответственно updat-ить необходимую запись ?
Если нельзя выцепить запись - можно конечно сделать так:
update table set author=CurrentUser where author=""
Но как поймать момент вставки записи ?
Digitman (2002-12-11 17:30:00) [1]>dimis
С каких пор я упоминал при произнесении слова "транзакция" слово "Paradox" ?
Если уж на то пошло, то т/а в в этом случае "эмулируется" объетом BDE.TDatabase на базе *.lck- структур, создаваемых тем же Парадоксом
Roki (2002-12-11 17:23:00) [2]dimis прав - переписать прогу самый лучший выход. Разберись со структурой БД и впред!
dimis (2002-12-11 17:12:00) [3]
> Digitman © (11.12.02 16:37)
c каких это пор в Paradoxе появились транзакции?
> sers
IMHO
вариантов два .
либо переписать программу
либо экспортировать таблички в другую СУБД ,где есть тригеры(например InterBase)
если программа написана нормально, то проблем возникнуть не должно
Digitman (2002-12-11 16:37:00) [4]
> sers
Есть еще такое понятие как "транзакция". И если эта самая "чужая прога без исходников" хоть сколь-либо расчитана на многопользовательский режим доступа к базе на файл-сервере, она должна поддерживать хоть какой-то механизм транзакций.
В этой связи основным моментом является то, что при использовании транзакционного механизма запись считается успешно вставленной только в том случае, если транзакция выполнена успешно и подтверждена клиентом. В противном случае физически добавленная запись в контексте стартованной транзакции будет помечена как удаленная, если транзакция была откачена в результате каких-то коллизий в бизнес-логике. Иными словами, даже если тебе каким-то способом удастся реализовать триггер, то достоверность его срабатывания будет весьма сомнительной из-за необходимости еще и отслеживать каким-то образом результаты ВСЕХ выполнившихся успешно/неуспешно транзакций
sers (2002-12-11 16:19:00) [5]Как кто. Моя прога. Вторая.
Например можно по таймеру отслеживать размер файла и если он увеличился запись вставлена. Хотя записи могут кэшироваться и это дело не пойдет.
Похоже что ничего тут не поделаешь
Johnmen (2002-12-11 13:58:00) [6]> Но как поймать момент вставки записи ?
А кто, по-твоему, должен ловить ? Подумай над этим...