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

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

Generator [D6, IB6.x]


uncle_m16 ©   (2002-05-16 19:21:00) 

Народ подскажите как создать Автоинкрементное поле в сетевой БД Интербайс????


kaif   (2002-05-17 01:23:00) [1]

Есть одна тонкость. При таком подходе (получение нового значения в триггере) нужно иметь еще альтернативный ключ(дополнительную уникальность в каждой таблице), чтобы мочь после вставки потом найти и пересветить эту запись.
Если такого ключа нет, то я рекомендую из приложения запрашивать новое значение генератора с помощью, скажем:
SELECT GEN_ID(<имя генератора>, 1) FROM RDB$DATABASE
затем вставлять запись, используя это полученное значение.
Тогда всегда можно будет сразу найти вставленную запись, так как приложение знает ее ключ. Во всяком случае, я поступаю именно так, используя компоненты IBX.
Гернераторы работают независимо от транзакций, поэтому в сети проблем не будет.
Таблица RDB$DATABASE выбрана просто потому, что в ней всего одна запись.


Moscower   (2002-05-16 23:56:00) [2]

Создаешь генератор, и его значение присваиваешь в поле триггером before insert. А поле просто целочисленное


Fay   (2002-05-16 21:21:00) [3]

Посмотри в хелпе CREATE GENERATOR


Наверх

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