|
|
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
Есть процедура For select ..... do begin Select GEN_ID(GEN, 1) from RDB$DATABASE INTO :GEN1; insert into tbl GEN values (::GEN1); Select GEN_ID(GEN, 1) from RDB$DATABASE INTO :GEN2; insert into tbl GEN values (::GEN2); end При выполнении процедуры получаем эксепшн "Duplicated GEN current record" куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:43:05 |
|
||
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
FBGuest, зачем писать это, Select GEN_ID(GEN, 1) from RDB$DATABASE INTO :GEN1; если можно gen1=gen_id(gen, 1); http://www.ibase.ru/devinfo/generator.htm FBGuestполучаем эксепшн "Duplicated GEN current record" это какой то ваш exception, в каком-ниьбудь триггере, который, возможно, положил болт на ваши значения, передаваемые в insert. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:58:52 |
|
||
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
Присвоение действительно разумнее так писать. Эксепшн действильно местный. Проверяет уникальность этого ключа. Так же в отладчике процедуры видно что генерятся "старые" значения. Хотя если выполнить генерацию этого ключа на чистом sql, то значения отображаются верные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 17:46:47 |
|
||
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
FBGuest, раньше можно было удалить генератор, и пересоздать его, при этом в процедуре, использующей генератор, продолжают генерироваться старые номера, а из sql или в новой процедуре новый генератор будет выдавать другие номера. Так что, после удаления-создания генератор, процедуры и триггеры, его использующие, нужно заальтерить, т.е. перекомпилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 17:55:48 |
|
||
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
Ничего не удалялось/пересоздавалось. Просто create procedure. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 18:01:51 |
|
||
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
FBGuestНичего не удалялось/пересоздавалось. Просто create procedure. не верю. еще раз - при компиляции процедуры создается blr, и дальше используется только он. если генератор не трогали, то и процедура и sql будут выдавать те же gen_id для этого генератора. Перекомпилируйте процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 18:12:38 |
|
||
|
Dublicate generator values inside procedure
|
|||
|---|---|---|---|
|
#18+
FBGuestЕсть процедура Есть процедура - показывай. Тот кусок, что ты привёл просто не скомпилируется. Ставлю на то, что ты во втором insert написал тот же gen1. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 18:24:38 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=99&tid=1563752]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
264ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 580ms |

| 0 / 0 |
