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

Вниз

Хочу покаяться за то, что наговорил про генераторы в триггерах   Найти похожие ветки 

 
kaif ©   (2006-07-16 20:28) [0]

Как-то месяц назад я заявил, что юзать генераторы в триггерах IB - плохая традиция, так как это не позволяет найти только что вставленную запись (информация внутри триггера во внешний мир не проникает).
Вполне разумное предложение использовать в триггере проверку на NULL

 IF (NEW.ID IS NULL) THEN
  NEW.ID = GEN_ID(MyGenerator, 1);

я отверг, так как это не решало проблему.

Так получилось потому что я уже давно не использовал средства разработки типа IBExpress, а работал в основном в своей специализированной среде, где эти вопросы решались системой и несколько иначе.
Сейчас я пишу одну базу данных с нуля, используя IBExpert и я заметил, что если в IBExpert делаешь ручное добавление записей в таблицы, то приходится еще параллельно потом не забывать модифицировать генераторы, чтобы при работе приложения не попасть в VIOLATION первичного ключа.

Оказалось, что использование генераторов в триггерах с условием проверки ключевого поля при вставке на NULL снимает эту проблему и значительно упрощает процесс разработки базы, так как позволяет просто забыть о генераторах, даже если работаешь не из своего приложения, а просто "руками" в IBExpert.

Так что каюсь и беру свои слова назад.

Я вижу, что все же Имеет смысл использовать присвоение в триггерах BEFORE INSERT IB.

Разумеется, это не решает проблему нахождения вставленной записи, но зато решает другую проблему - герантированную модификацию генератора, не зависящую от способа вставки записи - из приложения или "руками" в IBExpert.

Как IBExpert находит вставленные записи - для меня загадка, если честно. Либо он прощучивает уникальные альтернативные ключи, либо опирается на содержимое всех полей. Не знаю.


 
DrPass ©   (2006-07-16 21:17) [1]

Господь прощает твои грехи, сын мой


 
unknown ©   (2006-07-17 00:12) [2]

Аминь.


 
Суслик ©   (2006-07-17 03:20) [3]

новичек ты наш :)


 
Desdechado ©   (2006-07-17 10:56) [4]

> имеет смысл использовать
Это и называется "бизнес-логика на сервере"
:)



Страницы: 1 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1148930833
Евгений Р.
2006-05-29 23:27
2006.08.06
Нехватка еста для БДЕ


1-1151042414
Shlomo
2006-06-23 10:00
2006.08.06
Delphi 2005 и Quick Report?


15-1152176226
alles
2006-07-06 12:57
2006.08.06
asp доступ к Paradox-у по локалке


15-1152012157
PVOzerski
2006-07-04 15:22
2006.08.06
Вирус или троян, воюющий с Оперой?


2-1152864598
yurick1
2006-07-14 12:09
2006.08.06
компоненты