Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение значения из триггера по созданию новой записи [D7, IB6.x]


Страницы:   1 2 3

Boroda Oleg ©   (2004-02-04 16:15:00) 

Добрый день!

Точно помню, что уже читал когда-то обсасывание этой проблеммы, но вот где - не помню.

Нужно получить ID записи после ее создания. В самой таблице организован метод автоматической генерации новых ключей через генератор. Естественно, имеется тригер, который, надо думать, срабатывает при создании новых записей. Как "увидеть" из-под Дельфи значение параметра ID после добавления новой записи?


HSolo   (2004-02-04 17:10:00) [41]

> а если два юзера практически одновременно запустят новую запись?

Ну и что? Вы же, надеюсь берете на клиенте
GEN_ID(MyGenerator,1)
а потом вставляете?


Boroda Oleg   (2004-02-04 17:02:00) [42]

Т.Е. поднимаю значение генератора
Вызываю DataSet.Insert

Один недостаток - а если два юзера практически одновременно запустят новую запись?
Может проще не пользоваться тригерами, а вызывать StoredProc по DataSet.onNewRecord - у меня раньше все так было реализованно, сбоев не было не разу, правда работал через BDE.


Johnmen   (2004-02-04 16:45:00) [43]

>Boroda Oleg

Если твоему приложению надо знать этот ID, то стандартная рекомендация - получать его значение ДО вставки.


Vlad   (2004-02-04 16:37:00) [44]

Refresh AfterPost ?


Boroda Oleg   (2004-02-04 16:23:00) [45]

Не, в триггере я ее прописал:
if (NEW.ID_ACCOUNT is NULL) then NEW.ID_ACCOUNT = gen_id(GEN_ACCOUNT,1);

Меня заботит проблемма, как этот NEW.ID_ACCOUNT увидеть из Дельфи, после того, как он стал не NULL.


Johnmen   (2004-02-04 16:17:00) [46]

GEN_ID(MyGenerator,0)
НЕ гарантируется достоверность при многопользовательской работе.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо