PDA

Просмотр полной версии : хелп: почему не срабатывает запрос?



Mike-dc
06.12.2007, 23:26
*INTERBASE

создаю таблицу:
CREATE TABLE "comp"
(
"compID" INTEGER NOT NULL,
"naim" VARCHAR(100) CHARACTER SET WIN1251 NOT NULL,
"neispr" VARCHAR(100) CHARACTER SET WIN1251 NOT NULL,
PRIMARY KEY ("compID")
);

создаю генератор:
CREATE GENERATOR "GEN_COMP";

присваиваю ему значение:
set generator gen_comp to 1

пишу запрос привязки созданного генератора к таблице:

set term !! ;
create trigger "bef_ins_comp" for "comp"
active before insert
as
begin new.compID=gen_id (GEN_COMP, 1);
end !!
set term; !!
set term ^;

сообщение об ощибке:
Dynamic SQL Error
SQL error code = -206
Column unknown
NEW.COMPID
Statement: create trigger "bef_ins_comp" for "comp"
active before insert

почему? о.О

maxx
06.12.2007, 23:44
"compID"
create trigger "bef_ins_comp" for "comp" <-ругается на это с причиной colymn unknown


названия то.....

Mike-dc
06.12.2007, 23:51
названия то.....

в смысле?____________

Positiff
07.12.2007, 00:37
В смысле разные, не совпадают )

AmorF
07.12.2007, 01:05
названия то.....


В смысле разные, не совпадают )

Вы чего? Все норм, comp - название таблицы, compID - колонка первичного ключа в этой таблице. Новый ID генерируем же.
Mike-dc, попробуй написать так:

as
begin
new.compID=gen_id(GEN_COMP,1);
end !!
увы, сейчас интербейса не стоит, проверить не могу =\

Mike-dc
07.12.2007, 12:45
не... не работает все равно

BO0eV!K
07.12.2007, 14:13
set term !! ;
create trigger bef_ins_comp for comp
active before insert
as
begin new.compID=gen_id (GEN_COMP, 1);
end !!
set term; !!

AmorF
07.12.2007, 14:49
Бла, я тормоз перестройки))
Mike-dc, переведи весь свой код в верхний регистр и все будет ок (названия таблиц, колонок и т.п.) :) с ним все в порядке

Mike-dc
07.12.2007, 14:53
заработало..
не знаю в чем дело было...
все заново сделал, только таблицы и имена полей переименовал и все работает!

AmorF
07.12.2007, 14:59
Эта зараза чувствительна к регистру)))
Mike-dc,случаем не ист?

knowy
07.12.2007, 15:15
Ещё она чувствительна к лишним пробелам в строке, так что, если запрос откуда-то скопирован (из мануала в ворде, например), то тоже может вылезать такая ошибка.