|
|
|
Как достаь ключь после INSERT
|
|||
|---|---|---|---|
|
#18+
В MSSQL там есть @@INDENTITY которая возаращает значение поля счётчика после операции INSERT. Как в interbase это сделать для поля на которое установлен генератор. С учётом конечно что это не последнее значение генератора, а то значение,т.е. той сесии в которой выполнен INSERT/ НУ в смысле чтобы не получилось что кто то ещё успел сделать инсерт и я получу уже не то значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 07:12 |
|
||
|
Как достаь ключь после INSERT
|
|||
|---|---|---|---|
|
#18+
Для обращения к генератору используется функция GEN_ID(<имя генератора>, <шаг приращения>). Пока Вы делаете INSERT в рамках текущей транзакции, к генератору никто обратиться (изменить) не может,тем самым гарантируется иникальность значений. Чтобы вернуть в приложение значение генератора, использую хранимую процедуру, в которой выходному параметру присваиваю значение функции GEN_ID, этот же параметр используется в INSERT. Пользователям запрещаю INSERT, но разрешаю выполнять хранимую процедуру. Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. PS: Переменная mKod в этом примере лишняя... Используй сразу параметр Kod_IN_. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 09:27 |
|
||
|
|

start [/forum/topic.php?fid=40&tid=1580326]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
415ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 728ms |

| 0 / 0 |
