imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 06.04.2005, 19:05     # 1
Kitsune
Newbie
 
Аватар для Kitsune
 
Регистрация: 12.12.2004
Сообщения: 45

Kitsune Путь к славе только начался
Идентификация изменённой записи

Пожалуйста подскажите каким образом я могу записывать и хранить в базе данных FireBird данные о том, кто и когда изменил конкретную запись. Желательно чтобы записывался IP пользователя.
Т.е., например, есть таблица с полями П1, П2, П3, П4(Ip пользователя) . Некоторый пользователь добавил новую запись (или изменил её), сразу после сохранения записи (или до сохранения) в поле П4 должна поместиться запись в виде IP юзера или его ЛОГИН.
Спасибо!
Буду рад ссылкам, где можно именно про это почитать и ознакомиться.
__________________
С уважением, Kitsune!
Kitsune вне форума  
Старый 06.04.2005, 21:16     # 2
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
Дык, сделай соответствующие филды в таблице, которые тебе нужны и пиши туда... запрос на добавление/изменение просто переделай и усе...
Кстати, не проще ли хранить его ID, или у тебя доступ есть и не у зарегеных пользователей?
/7y3uK вне форума  
Старый 07.04.2005, 01:18     # 3
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Из Language Reference ещё Interbase'а
Цитата:
CREATE DOMAIN USERNAME AS VARCHAR(20) DEFAULT USER;

CREATE TABLE ORDERS (ORDER_DATE DATE, ENTERED_BY USERNAME, ORDER_AMT DECIMAL(8,2));

INSERT INTO ORDERS (ORDER_DATE, ORDER_AMT) VALUES (’1-MAY-93’, 512.36);
Т.к. INSERT не содержит значения для колонки ENTERED_BY, InterBase
автоматически вставляет имя текущего пользователя, JSMITH:
Цитата:
SELECT * FROM ORDERS;
1-MAY-93 JSMITH 512.36
В объявлении домена, USER - стандартная контекстная переменная (в Firebird сейчас ещё и CURRENT_USER) - текущий пользователь.

Можно, в принципе, и триггеры на добавиление/изменение написать с этой переменной.
ЕЖ вне форума  
Старый 07.04.2005, 22:56     # 4
Willow
Junior Member
 
Регистрация: 23.12.2003
Адрес: Киев
Сообщения: 118

Willow Реально крут(а)Willow Реально крут(а)Willow Реально крут(а)Willow Реально крут(а)
Только я бы не в insert и update записывал дату обновления, а написалбы тригер:

CREATE TRIGGER NAME_BIU0 FOR TABLENAME
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
begin
new.updatetime=current_timestamp;
new.user=CURRENT_USER;
end
Willow вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:22.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.