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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.053 c
15-1176231879
Иксик
2007-04-10 23:04
2007.05.13
Посоветуйте чего-нибудь почитать


2-1177444941
Олег Валерьевич
2007-04-25 00:02
2007.05.13
Автоматическое напоминание...


1-1174011762
VitAngel
2007-03-16 05:22
2007.05.13
Прозрачный логотип


2-1176986449
ppcumax
2007-04-19 16:40
2007.05.13
Пишу текстовой редактор, нужна помощь


4-1158831860
Jolik
2006-09-21 13:44
2007.05.13
Integer-переменные и многозадачность...