2010-10-18 2 views
0

Я хочу создать триггер в foxpro, который будет выполняться после каждого обновления в моей таблице db, например JobActivity. После каждого обновления триггер должен вставить время обновления в таблицу JobActivity.Создать FoxPro Trigger

ответ

2

Вместо ПОСЛЕ обновления вы можете применить проверку правильности записи (как упоминает @Stuart Dunkeld), которая применяется против всей записи до обработки вставки/обновления.

Перейти к контейнеру базы данных и создать хранимую процедуру что-то вроде

FUNCTION SP_LastUpdated() 
    replace LastEditDT WITH DATETIME() 
    RETURN .t. 
ENDFUNC 

Тогда для правила проверки рекорда, положить в SP_LastUpdated().

0

Вы хотели бы использовать Create Trigger command то, кроме вас, есть одна проблема: триггер VFP не может обновить таблицу, которая стреляет его (как в противном случае это конец будет в бесконечном цикле)

У меня было решение это в проекте, который я сделал много лет назад, я думаю, что он использовал правило проверки записи для обновления, я буду искать его, когда вернусь домой и опубликую его.

0

После каждого обновления триггер должен вставить время обновления в таблицу JobActivity в таблице .

Мое первое предположение заключается в том, что обновление этой таблицы данных выполняется в приложении VFP.

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

И если сама обновляемая таблица сама по себе, необходимо изменить таблицу jobActivity, а затем команду UPDATE или REPLACE, используемую для обновления других данных, чтобы также написать это поле отслеживания обновлений - просто. На самом деле, если вы этого хотели, вы можете легко добавить Инициалы и т. Д. Того, кто делает обновление.

Если вы делаете это в приложении с использованием другого языка, вы все равно можете добавить код для выпуска SQL UPDATE в таблицу workActivity.

Удача

Смежные вопросы