Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.011 c
3-1149195967
Glivera
2006-06-02 01:06
2006.08.06
Количество записей выданных после запроса.


15-1152595364
tButton
2006-07-11 09:22
2006.08.06
а я вот призадумался


2-1153383082
Pups
2006-07-20 12:11
2006.08.06
Подскажите по классам!!!


15-1152613746
SoftService
2006-07-11 14:29
2006.08.06
J2ME compiler


15-1151863187
Handle
2006-07-02 21:59
2006.08.06
Люди поздравьте меня





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