
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.12.2003, 11:51
|
|||
|---|---|---|---|
|
|||
ОбЪясните, как сделать в БД "IB" |
|||
|
#18+
Есть в базе поле, скажем "сounts" типа "intenger". Мне нужно чтоб при вставке новой записи в этом поле было уникальное число. Как я понял мне нужно сделать генератор, и потом сделать триггер на событии "Before Post" чтоб в определенное поле гененрировалось число. Сделал генератор: CREATE GENERATOR GEN_Count_ID; SET GENERATOR GEN_Count_ID TO 0; А как сделать триггер, и чтоб все работало? Если можно подскажите подробней, пожалуйста. P.S. Для доступа к редактированию БД, пользуюсь IB Expert 2.0.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2003, 12:25
|
|||
|---|---|---|---|
|
|||
ОбЪясните, как сделать в БД "IB" |
|||
|
#18+
create trigger MYTABLE_BI for MyTable before insert as begin NEW.COUNTS = GEN_ID(GEN_Count_ID,1); end ОБ остальном советую почитать руководство все-таки :) И я бы рекомендовал тело как begin if (NEW.COUNTS is NULL) then NEW.COUNTS = GEN_ID(GEN_Count_ID,1); end Более управляемо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2003, 12:29
|
|||
|---|---|---|---|
|
|||
ОбЪясните, как сделать в БД "IB" |
|||
|
#18+
создаешь триггер: set term !!; create trigger ИМЯ_ТРИГГЕРА for ИМЯ_ТАБЛИЦЫ before insert position 0 as begin IF (new.ИМЯ_ПОЛЯ IS NULL) THEN new.ИМЯ_ПОЛЯ = GEN_ID(ИМЯ_ТВОЕГО_ГЕНЕРАТОРА, 1); end !! set term ; !! и все - теперь поле ИМЯ_ПОЛЯ инкрементное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2003, 13:02
|
|||
|---|---|---|---|
|
|||
ОбЪясните, как сделать в БД "IB" |
|||
|
#18+
Сделал триггер: AS begin IF (new.DOC_ID IS NULL) THEN new.DOC_ID = GEN_ID(GEN_DOC_ID, 1); end Где: - DOC_ID - поле в БД; - GEN_DOC_ID - название генератора; Сохранил все, и попробывал создать в БД через программы свою новую запись, и поле не изменилось, на всех записях стоит число "0". Мне нужно в коде программы внести изменения или нет? Пишу на С++ В. использую компонент "IBDataSet1". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2003, 13:08
|
|||
|---|---|---|---|
|
|||
ОбЪясните, как сделать в БД "IB" |
|||
|
#18+
Ты сделал вставку со значением поля 0, а не NULL, убери if ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&tablet=1&tid=1579474]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 428ms |

| 0 / 0 |
