Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Триггер. Не записівается в блоб-поле   Найти похожие ветки 

 
}|{yk ©   (2004-04-23 16:16) [0]

Такой триггер

CREATE TRIGGER APP_BANK_AI FOR APP_BANK
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 32767
AS
DECLARE VARIABLE TID INTEGER;
DECLARE VARIABLE NEW_VALUE varchar(255);
DECLARE VARIABLE OLD_VALUE varchar(255);
BEGIN
 TID = GEN_ID(GEN_APP_LOG_ID,1);
 if (inserting or updating) then
  begin
 NEW_VALUE="<app_bank>";
 NEW_VALUE=NEW_VALUE||"<bank_id>"||new.bank_id||"</bank_id>";
 NEW_VALUE=NEW_VALUE||"<line_id>"||new.line_id||"</line_id>";
 NEW_VALUE=NEW_VALUE||"<set_id>"||new.set_id||"</set_id>";
 NEW_VALUE=NEW_VALUE||"<cust1_id>"||new.cust1_id||"</cust1_id>";
 NEW_VALUE=NEW_VALUE||"<cust2_id>"||new.cust2_id||"</cust2_id>";
 NEW_VALUE=NEW_VALUE||"<summa>"||new.summa||"</summa>";
 NEW_VALUE=NEW_VALUE||"<commentar>"||new.commentar||"</commentar>";
 NEW_VALUE=NEW_VALUE||"<unit_id>"||new.unit_id||"</unit_id>";
 NEW_VALUE=NEW_VALUE||"<plat_date>"||new.plat_date||"</plat_date>";
 NEW_VALUE=NEW_VALUE||"<rs_id>"||new.rs_id||"</rs_id>";
 NEW_VALUE=NEW_VALUE||"</app_bank>";
  end
 if (deleting or updating) then
  begin
 OLD_VALUE="<app_bank>";
 OLD_VALUE=OLD_VALUE||"<bank_id>"||old.bank_id||"</bank_id>";
 OLD_VALUE=OLD_VALUE||"<line_id>"||old.line_id||"</line_id>";
 OLD_VALUE=OLD_VALUE||"<set_id>"||old.set_id||"</set_id>";
 OLD_VALUE=OLD_VALUE||"<cust1_id>"||old.cust1_id||"</cust1_id>";
 OLD_VALUE=OLD_VALUE||"<cust2_id>"||old.cust2_id||"</cust2_id>";
 OLD_VALUE=OLD_VALUE||"<summa>"||old.summa||"</summa>";
 OLD_VALUE=OLD_VALUE||"<commentar>"||old.commentar||"</commentar>";
 OLD_VALUE=OLD_VALUE||"<unit_id>"||old.unit_id||"</unit_id>";
 OLD_VALUE=OLD_VALUE||"<plat_date>"||old.plat_date||"</plat_date>";
 OLD_VALUE=OLD_VALUE||"<rs_id>"||old.rs_id||"</rs_id>";
 OLD_VALUE=OLD_VALUE||"</app_bank>";
  end
 if (inserting) then
 INSERT INTO APP_LOG (APP_LOG_ID,APP_LOG_TIME,APP_LOG_OPERATION,APP_LOG_TABLE,
   APP_LOG_USER,APP_LOG_NEW_VALUE)
   VALUES (:TID, "NOW","insert", "APP_BANK", USER,:NEW_VALUE);
 if (updating) then
 INSERT INTO APP_LOG (APP_LOG_ID,APP_LOG_TIME,APP_LOG_OPERATION,APP_LOG_TABLE,
   APP_LOG_USER,APP_LOG_OLD_VALUE,APP_LOG_NEW_VALUE)
   VALUES (:TID, "NOW","update", "APP_BANK", USER,:OLD_VALUE,:NEW_VALUE);
 if (deleting) then
 INSERT INTO APP_LOG (APP_LOG_ID,APP_LOG_TIME,APP_LOG_OPERATION,APP_LOG_TABLE,
   APP_LOG_USER,APP_LOG_OLD_VALUE)
   VALUES (:TID, "NOW","delete", "APP_BANK", USER,:OLD_VALUE);
END

Структура лога
CREATE TABLE APP_LOG (
   APP_LOG_ID         IDENTIFIER /* INTEGER */ NOT NULL,
   APP_LOG_TIME       TIMESTAMP NOT NULL,
   APP_LOG_OPERATION  VARCHAR(10) NOT NULL COLLATE WIN1251_UA,
   APP_LOG_TABLE      VARCHAR(32) NOT NULL COLLATE WIN1251_UA,
   APP_LOG_USER       VARCHAR(32) COLLATE WIN1251_UA,
   APP_LOG_MACHINE    VARCHAR(32) COLLATE WIN1251_UA,
   APP_LOG_OLD_VALUE  BLOB SUB_TYPE 1 SEGMENT SIZE 100,
   APP_LOG_NEW_VALUE  BLOB SUB_TYPE 1 SEGMENT SIZE 100
);

Лог ведется как нужно, только вот ни old_value, ни new_value не пишется. Никто не подскажет, почему?
FireBird 1.5


 
Johnmen ©   (2004-04-23 16:54) [1]

Потому, что с блобами так не обращаются.

Когда начнешь читать доки ?


 
}|{yk ©   (2004-04-23 17:02) [2]

С блобами так обращаются
и все пишется
Проблема опять с charset...



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

Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
6-1081166378
Makhanev A.S.
2004-04-05 15:59
2004.05.23
Sockets: ESysError, code=5; AV...


14-1083249319
Goida
2004-04-29 18:35
2004.05.23
А мне только что досталась лицензионная версия Borland C++!!!


7-1081861291
Pavel
2004-04-13 17:01
2004.05.23
Inetd в Win 2000


1-1084274660
DimonNew
2004-05-11 15:24
2004.05.23
qtintf70.dll


1-1083910553
Olsher
2004-05-07 10:15
2004.05.23
Выполнение действий во время прокрутки текста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский