
Получился странный баг в триггерах представления Before Insert и Before Update.
Сервер: FireBird 1.52
Таблица:
CREATE TABLE TBL_OBJECTS (
ID DMN_ID NOT NULL /* DMN_ID = INTEGER NOT NULL */,
NAME DMN_STR_127 /* DMN_STR_127 = VARCHAR(127) */,
TAG DMN_INT /* DMN_INT = INTEGER */,
DATE_ DMN_TS_NOW /* DMN_TS_NOW = TIMESTAMP DEFAULT 'NOW' */,
DESCRIPTION DMN_STR_255 /* DMN_STR_255 = VARCHAR(255) */,
HEAD_ID DMN_INT /* DMN_INT = INTEGER */
);
Представление на эту таблицу:
CREATE VIEW VW_TUNITS(
ID,
NAME,
DESCRIPTION)
AS
Select TBL.ID , TBL.NAME Name , TBL.DESCRIPTION Description From TBL_OBJECTS TBL Where TBL.HEAD_ID = 7 ;
Триггер представления на вставку:
Create Trigger TRG_TUNITS_BI for VW_TUNITS
BEFORE INSERT AS Begin
Insert Into TBL_OBJECTS
(ID, HEAD_ID,NAME,DESCRIPTION)
Values (New.ID, 7,New.NAME,New.DESCRIPTION); End
Вроде всё элементарно, но при попытке вставки записи с любыми данными в поле NAME или DESCRIPTION выдаёт:
"Overflow occurred during data type conversion.
conversion error from string "aoeuaoeuaoeu"."
С модифицирующим триггером та же беда. Удаляющий работает нормально. Если убираю поле Name из представления и триггеров, тоже всё нормально проходит.
Странный прикол
