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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.035 c
1-1094562362
Koala
2004-09-07 17:06
2004.09.26
Ошибка в отчете FastReport 2.53


14-1094716082
by
2004-09-09 11:48
2004.09.26
Пример модели предметной области для проектирования


14-1093740231
Nick0la
2004-08-29 04:43
2004.09.26
Есть ли горячая клавиша для путешествия по операторным скобкам?


14-1094265307
Думкин
2004-09-04 06:35
2004.09.26
С днем рождения! 4 сентября


14-1094779713
Думкин
2004-09-10 05:28
2004.09.26
С днем рождения! 10 сентября





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