Главная страница
    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.45 MB
Время: 0.042 c
11-1071838359
SAGE
2003-12-19 15:52
2004.05.23
Ошибка: already in skipping mode.


7-1081853748
Ded Moroz
2004-04-13 14:55
2004.05.23
USB-WebCam, S-Video


3-1082502716
maniac
2004-04-21 03:11
2004.05.23
MySQL+Zeos Query делаю insert данные в базе а программе ошибка :(


7-1081946450
Shurik_212
2004-04-14 16:40
2004.05.23
Событие появления файла на диске


7-1081883007
Mozzzila
2004-04-13 23:03
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский