Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

AutoIncrement   Найти похожие ветки 

 
Астроном   (2004-08-28 10:21) [0]

Как создать триггер/процедуру/генератор для правильного авто-инкремента для поля типа Integer?


 
Сергей Бастрыгин ©   (2004-08-28 12:39) [1]

CREATE TRIGGER CALLS_BI FOR CALLS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.CDCALL IS NULL) THEN
   NEW.CDCALL = GEN_ID(GEN_CALLS,1);
 ELSE
   IF(NEW.CDCALL > GEN_ID(GEN_CALLS,0)) THEN
     NEW.CDCALL =GEN_ID(GEN_CALLS,NEW.CDCALL -GEN_ID(GEN_CALLS,0));
     
END


 
Vemer ©   (2004-08-28 17:37) [2]

Варианты:
1) Триггер
2) Свойство GenetatorField IBQuery / IBDataset.
3) Select GEN_ID(My_Gen,1) при вставке из ХП.

Применение 2-х последних делают позволяет мне отказаться от первого. Но конечно зависит от задачи.


 
Koala ©   (2004-08-28 19:17) [3]

Воспользуйся IBExpert, там при создании таблицы тригер и генератор можно создать автоматически на автоинкрементное поле с указанием номера с какого нужно начать


 
Астроном   (2004-08-29 04:27) [4]

Пользуюсь IBExpert, создаю генератор:
CREATE GENERATOR GEN_AGENTS_CODE;
SET GENERATOR GEN_AGENTS_CODE TO 1;


затем создаю триггер:
CREATE TRIGGER AGENTS_BI FOR AGENTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODE IS NULL) THEN
NEW.CODE = GEN_ID(GEN_AGENTS_CODE,1);
END


Создаю приложение на Делфях, создаю запись Query.Insert,
но полю CODE присваивается "0" :(

Что не так делаю?

З.Ы. Кстати, где можно достать FIBPlus для D7?


 
Сергей Бастрыгин ©   (2004-08-29 11:26) [5]

Триггер у тебя пропустил без внимания, он сработает только если не указывать никакого значения при вставке при проверке на NULL, у тебя где-то кто-то ставит 0, посмотри внимательно


 
Zacho ©   (2004-08-29 14:26) [6]

Прочитай http://www.ibase.ru/devinfo/generator.htm - там все очень подробно написано.



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

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
1-1094889573
Yuri Btr
2004-09-11 11:59
2004.09.26
Выполнение действий по расписанию


4-1092969893
Poluprovodnik
2004-08-20 06:44
2004.09.26
Прочитать значение переменной среды окружения


6-1089807438
AlexA
2004-07-14 16:17
2004.09.26
Пытаюсь при помощи TNMPOP3 сохранить вложения


4-1092824281
AlexV
2004-08-18 14:18
2004.09.26
Как вывести список ссылок Favorites (Избранное) в ListBox ?


3-1093604914
Aleksandr.
2004-08-27 15:08
2004.09.26
Скажите, BDIInit надо вызывать в каждом потоке, работающем с БДЕ?