![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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