Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с триггером, Не работает метод insert внутри триггера 
:(
    Опции темы
ArnoldLane
Дата 11.7.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.6.2005

Репутация: нет
Всего: нет



Есть триггер -
Код

CREATE TRIGGER INSERT_INTO_STORE FOR STORE
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE i INTEGER;
BEGIN
SELECT COUNT(DIRECTORY.CODE) from DIRECTORY where DIRECTORY.CODE = NEW.CODE into :i;
IF (i IS NULL)
THEN INSERT INTO DIRECTORY (NAME, CODE) VALUES (NEW.NAME, NEW.CODE);
ELSE UPDATE DIRECTORY SET DIRECTORY.NAME = NEW.NAME WHERE DIRECTORY.CODE = NEW.CODE;
END
;

так вот, если количество записей оакзывается больше нуля UPDATE срабатывает, но если количество равно таки нулю, INSERT не производится. Что здесь не так? Заранее благодарен.
P.S. Не совсем понимаю, вернее совсем не понимаю, как это может относиться к данноу вопросу, но на всякий случай такая доп. информация - в таблице DIRECTORY на поле CODE стоит ограничение NOT NULL.
PM MAIL   Вверх
g-m
Дата 11.7.2005, 19:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так равно 0 или is NULL ???
Разница однако большая...
  Вверх
ArnoldLane
Дата 11.7.2005, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.6.2005

Репутация: нет
Всего: нет



М-да, похоже мне нечего добавить.
PM MAIL   Вверх
g-m
Дата 12.7.2005, 06:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я непонятно выразился?
COUNT всегда вернет ЗНАЧЕНИЕ. 0 - тоже ЗНАЧЕНИЕ.
NULL - нет ничего.

В данном случае ситуация "IF (i IS NULL)" не возникнет никогда.
  Вверх
ArnoldLane
Дата 12.7.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.6.2005

Репутация: нет
Всего: нет



To g-m
Да нет ты понятно выразился. Я понял, что облажался. Поэтому и написал, что мне нечего добавить.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.