|
|
|
курсор и транзакция
|
|||
|---|---|---|---|
|
#18+
никак не могу понять, что неправильно если инсерт срабатывает без ошибок, то транзакция commit и начинается следующая а если ошибка, то она откатывается, а потом еще и коммитится, и при следующей транзакции такая ошибка The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION вот код -------------- set @X_Client = CURSOR FORWARD_ONLY FOR SELECT cod FROM client; Open @X_Client; WHILE 1=1 BEGIN FETCH NEXT FROM @X_Client into @cod if (@@FETCH_STATUS<>0) break; begin tran insert into Address (COD) values (@COD); if @@error <> 0 begin rollback tran; raiserror ('ошибка при заполнении Address! COD= %s',16,1,@cod); end; commit tran; END; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2002, 14:12 |
|
||
|
курсор и транзакция
|
|||
|---|---|---|---|
|
#18+
Потому что ROLLBACK не прерывает запрос и не отменяет нижеследующие операторы, а нижеследует как раз COMMIT. Курсор тут не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2002, 14:22 |
|
||
|
курсор и транзакция
|
|||
|---|---|---|---|
|
#18+
спасибо я сделала с метками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2002, 14:34 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32026511&tid=1823309]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 421ms |

| 0 / 0 |
