Модераторы: Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Журналирование операций (FB 2.0), Если исп. своя таблица пользователей 
:(
    Опции темы
Akella
Дата 18.4.2007, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Хочу предупредить про подводный камень, на который наткнулся при использовании программы со встраиваемым сервером. В LOG-таблице есть поле ClientIP, которое не может быть пустым(not null). Так вот, при использовании встраиваемого сервера.

Код должен быть таким:
Код

CREATE GENERATOR GEN_JOURNAL_ID;
CREATE TABLE JOURNAL (
    ID          BIGINT NOT NULL,
    UID         INTEGER NOT NULL,
    DATE_TIME   DATETIME NOT NULL /* DATETIME = TIMESTAMP */,
    TABLE_NAME  STRING110 NOT NULL /* STRING110 = VARCHAR(110) */,
    ACT         STRING110 NOT NULL /* STRING110 = VARCHAR(110) */,
    CLIENT_IP   STRING110 /* STRING110 = VARCHAR(110) */,
    ID_NEW      BIGINNT /* BIGINNT = BIGINT */,
    ID_OLD      BIGINNT /* BIGINNT = BIGINT */
);
ALTER TABLE JOURNAL ADD CONSTRAINT PK_JOURNAL PRIMARY KEY (ID);
CREATE TRIGGER JOURNAL_BI FOR JOURNAL
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GEN_JOURNAL_ID,1);
END


т.к. в хранимке функция возвращает null в этом случае (rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
Код

values
      (:USER_ID, current_timestamp, :Table_name, :act, rdb$get_context('SYSTEM', 'CLIENT_ADDRESS'),:id_new, :id_old);


Добавлено через 1 минуту и 4 секунды
т.е. поле ClientIP должно допускать "пустое" значение.
PM MAIL   Вверх
Akella
Дата 11.5.2007, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Akella @  5.2.2007,  16:49 Найти цитируемый пост)
С одной стороны так делать не очень хорошо. В идеале нужно работать с системными учётными записями. Но в моем случае у меня в базе своя таблица пользователей, своя таблица групп пользователей и своя таблица прав доступа. 

но можно ассоциировать свою и системную таблицы пользователей и групп
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.