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

Вниз

Проблема с триггером   Найти похожие ветки 

 
AUS_r4nd0m ©   (2004-11-03 20:55) [0]

Привет, Мастера. У меня такая проблема: надо создать триггер, который записывает в поле ID (первичный ключ) уникальное значение с помощью генератора.
Вот запрос на создание:
CREATE TRIGGER TR_ID_Str FOR Strana
ACTIVE
BEFORE INSERT
AS
 BEGIN
  ID_Str=GEN_ID(Gen_Str,1)
 END


Ошибка:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 7, char 1
END
Statement: CREATE TRIGGER TR_ID_Str FOR Strana
ACTIVE
BEFORE INSERT
AS
BEGIN
 ID_Str=GEN_ID(Gen_Str,1)
END


 
AUS_r4nd0m ©   (2004-11-03 20:56) [1]

Что в этом коде не так ???
Заранее спасибо...


 
Vlad ©   (2004-11-03 21:05) [2]

точку с запятой забыл в конце предложения


 
Vlad ©   (2004-11-03 21:08) [3]

CREATE TRIGGER TBI_CLIENTS FOR CLIENTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 NEW.CLIENT_ID = GEN_ID(NEWCLIENT, 1);
END


 
AUS_r4nd0m ©   (2004-11-03 21:30) [4]

CREATE TRIGGER TR_ID_Str FOR Strana
ACTIVE
BEFORE INSERT POSITION 0
AS
 BEGIN
  New.ID_Str=GEN_ID(Gen_Str,1);
 END


Теперь вот что пишет:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command


 
Vlad ©   (2004-11-03 21:40) [5]

навскидку все вроде верно, хотя почитай еще вот это:
http://www.ibase.ru/devinfo/generator.htm#using


 
AUS_r4nd0m ©   (2004-11-03 21:48) [6]

А если в запросах из клиентского приложения вызывать генератор, тоже самое ведь получится? Странно все это, вроде до этого делал работало....


 
Johnmen ©   (2004-11-03 22:09) [7]

>AUS_r4nd0m ©  (03.11.04 21:30) [4]

Откуда выполняется сиё ?


 
AUS_r4nd0m ©   (2004-11-03 22:10) [8]

> Johnmen
IBConsole


 
AUS_r4nd0m ©   (2004-11-03 22:13) [9]

Вот моя ася стучитесь 309462263, иначе это будет долго...


 
Johnmen ©   (2004-11-03 22:20) [10]

У меня нет аси. И не будет :)

SET TERM ^ ;

CREATE TRIGGER TR_ID_Str FOR Strana
ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
New.ID_Str=GEN_ID(Gen_Str,1);
END ^

SET TERM ; ^

СтОит хелпы почитать...:)


 
AUS_r4nd0m ©   (2004-11-03 22:32) [11]

Спасибо, работает. А что такое SET TERM ^ ;?


 
Johnmen ©   (2004-11-03 22:59) [12]

Изменю себе и не буду посылать в хелп...:)
ИБКонсоль, как и другие аналогичные штуки, позволяет выполнять ряд последовательно написанных запросов (скрипт), которые отделяются ;
А у тебя идет создание триггера с его телом - содержимое его есть программа на процедурном языке. В котором языковые конструкции ("команды") также отделяются ;
Интерпритатор должен отличить эти, по сути разные, ; ?
Должен.
Для это сущ-ет опция команды SET под назв. TERM, которая говорит, что "дальше интерпритируем знак x как знак у, SET TERM x y".

Ну дальше понятно, надеюсь...:)


 
Johnmen ©   (2004-11-03 23:26) [13]

>Johnmen ©  (03.11.04 22:59) [12]

У тебя, дружок, ошибочка. ИНТЕРПРЕТАЦИЯ.
:)))


 
AUS_r4nd0m ©   (2004-11-04 00:44) [14]

Спасибо за объяснение. Теперь буду знать


 
Deniz ©   (2004-11-04 06:31) [15]

...
BEGIN
if (NEW.ID_Str is null) then <------ добавить
 New.ID_Str=GEN_ID(Gen_Str,1);
END



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
14-1100504823
ИМХО
2004-11-15 10:47
2004.12.05
Россия - Эстония: ваш прогноз


4-1098188002
sapsi
2004-10-19 16:13
2004.12.05
Переключение между приложениями


14-1100368415
FutureProgramme
2004-11-13 20:53
2004.12.05
Как поставить пароль на папку


1-1100878506
PC
2004-11-19 18:35
2004.12.05
"Полный контроль"


4-1098216214
DS
2004-10-20 00:03
2004.12.05
выключить компьютор Win2000





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