Форум: "Базы";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
ВнизInterBase-Generator-Trigger. Как узнать сгенерированный номер? Найти похожие ветки
← →
DmitrichJ (2007-02-24 22:02) [0]Доброе время суток, мастера. Подскажите пожалуйста. В БД есть теблици, в а таблеце поле NP (включён генератор и триггер) в котором генерируется номер записи при добавлении. Подскажите пожалуйста как узнать номер который он сгенерировал после команты INSERT... ? Спасибо.
← →
Виталий Панасенко © (2007-02-24 22:10) [1]никак...
← →
Виталий Панасенко © (2007-02-24 22:10) [2]только сделав полную выборку по-новому
← →
Johnmen © (2007-02-24 22:22) [3]Никак.
Но ты не расстраивайся, ибо правильные пацаны так не делают, если хотят знать. А как они делают - доступно изложено на ibase.ru
← →
DmitrichJ (2007-02-24 22:23) [4]Может стоит задать вопрос по-другому. Генерируется номер и добавляется запись. После чего нужно в другую таблицу добавить запись с таким же номером!
← →
DmitrichJ (2007-02-24 22:28) [5]Johnmen, хм.
← →
DrPass © (2007-02-24 22:41) [6]
> DmitrichJ (24.02.07 22:23) [4]
Хм... ну так сам подумай-то. Если тебе не подходит применяемый алгоритм, тогда что делать-то надо? Правильно, изменить алгоритм. Убери триггер, выцепи значение генератора (либо в программу, либо в хранимую процедуру) и вставляй его в нужные тебе таблицы
← →
DmitrichJ (2007-02-24 22:42) [7]Приятно иметь дело с профессионалами. Просто ненужно использовать триггер и добавлять с помощью генератора вручную. Всем спасибо!
← →
DmitrichJ (2007-02-24 23:28) [8]тьфу. Не использовать триггер. сорри
← →
DmitrichJ (2007-02-24 23:28) [9]тьфу. Не использовать триггер. сорри
← →
Johnmen © (2007-02-24 23:59) [10]Давай ещё разок, на бис...
← →
Antoxa2005 (2007-02-25 10:54) [11]Получи значение генератора и при добавлении сам вставь полученное значение в ключевое поле таблицы, а тригер не используй.
← →
Johnmen © (2007-02-25 14:10) [12]
> Antoxa2005 (25.02.07 10:54) [11]
А тебя на бис не вызывали.
← →
Desdechado © (2007-02-26 12:03) [13]Триггер убирать не нужно. Гораздо удобнее и гибче включить в триггер проверку:
IF( new.fld_id IS NULL ) THEN -- или проверку на значение, считающееся пустым, например 0
new.fld_id = gen_id( gen, 1 );
Тогда при "правильных" вставках будет работать ваш собственный механизм, а при "неправильных" (например, некий скрипт) - триггер.
← →
DrPass © (2007-02-26 13:10) [14]
> Триггер убирать не нужно. Гораздо удобнее и гибче включить
> в триггер проверку
Разве это удобнее? Наоборот, только помешает вылавливать глюки в приложении. Если логика работы приложения предусматривает "альтернативные" способы ввода данных (например, некий скрипт (с)), то да, так стоит сделать.
Если же не предусматривает, то городить ненужный код "на всякий случай" - вредное занятие
← →
Sergey13 © (2007-02-26 13:22) [15]> [14] DrPass © (26.02.07 13:10)
> Если логика работы приложения предусматривает
Сегодня не предусматривает, завтра будет предусматривать. Предусмотреть, что будет предусматривать завтра - и есть профессионализм.
← →
Виталий Панасенко © (2007-02-26 14:38) [16]использовать FireBird 2.x и не морочить голову(ну, и FIBPlus(может, еще какие компоненты умеют это))...
← →
Sergey13 © (2007-02-26 15:37) [17]> [16] Виталий Панасенко © (26.02.07 14:38)
Если понимать, что и как работает, то и поторашки с ИБХ-ом выше головы хватает.
Или юзать Оракл - всяко круче. 8-)
← →
Виталий Панасенко © (2007-02-26 17:23) [18]
> Sergey13 © (26.02.07 15:37) [17]
> > [16] Виталий Панасенко © (26.02.07 14:38)
>
> Если понимать, что и как работает, то и поторашки с ИБХ-
> ом выше головы хватает.
> Или юзать Оракл - всяко круче. 8-)
Суть не в том, кто круче, а в том, что в "двойке" это реализовано - можно узнать, что подставил триггер...без всяких изворотов...
← →
Sergey13 © (2007-02-27 08:18) [19]> [18] Виталий Панасенко © (26.02.07 17:23)
Returning из Insert-а что-ли реализовали? Так это разработчики наверное в Оракле подсмотрели. 8-)
Это просто небольшое удобство, т.к. посмотреть можно было и раньше и... какие уж тут извороты.
Впрочем "спор" ни о чем. Я завязываю.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.046 c