Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.106 c
2-1177130069
dmdel
2007-04-21 08:34
2007.05.13
OleContainer


15-1176453614
Riply
2007-04-13 12:40
2007.05.13
Презумпция невиновности.


15-1176549082
SkySpeed
2007-04-14 15:11
2007.05.13
Подскажите где можно найти спец ПО для изменения функц. клавиш?


2-1176899969
Romm
2007-04-18 16:39
2007.05.13
затрата памяти


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





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