Главная страница
    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.45 MB
Время: 0.039 c
6-1090318102
OmeGA[11]
2004-07-20 14:08
2004.09.26
Как перехватить запрос по 80 порту


1-1094716363
BPK
2004-09-09 11:52
2004.09.26
Нужно отобразить HTML


4-1092715743
DION
2004-08-17 08:09
2004.09.26
А хто знает, как определить производителя монитора....


4-1092430217
GuAV
2004-08-14 00:50
2004.09.26
Подмена WinAPI функции в своём приложении.


14-1094813074
Hint
2004-09-10 14:44
2004.09.26
Проблема с компьютером





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