Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Отлавливание ошибок в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Измучился я... Не получается отлавливать ошибки в хранимой процедуре. Если встречается ошибка типа integrity constraints транзакция откатывается сама, и не получается даже получить @@ERROR - до него дело даже не доходит... Посмотрите на кусочек кода SET XACT_ABORT ON SELECT @a=man from ManTable BEGIN DISTRIBUTED TRANSACTION UPDATE Man1 set aa=@a SELECT @err1=@@ERROR UPDATE server.somwhere.deepin.jungle ... -- Здесь ошибка то и порылась SELECT @err2=@@ERROR -- а сюда мы даже не попали... IF (@@err1=0 AND @@err2=0) COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION -- а здесь охота кое что еще поделать, типа письмецо послать админу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2001, 16:06 |
|
||
|
Отлавливание ошибок в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
:-> Сам поставил SET XACT_ABORT ON и еще спрашивает. Ты же включил откат при любой ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 04:42 |
|
||
|
Отлавливание ошибок в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Я думал над этим. Но без SET XACT_ABORT ON вообще распределенные транзакции не работают. Говорит что, якобы, Could not start a transaction for OLE DB provider 'MSDASQL'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 09:39 |
|
||
|
Отлавливание ошибок в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
"If SET XACT_ABORT is OFF, the linked server must also support nested transactions before update operations are allowed . Nested transactions are supported if the provider supports calling ITransactionLocal::StartTransaction when there is already an existing transaction for the session. This allows SQL Server to roll back individual statements in distributed queries without rolling back the entire transaction." >Говорит что, якобы, Could not start a transaction for OLE DB provider 'MSDASQL'. А SQLOLEDB провайдером то же самое ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 10:00 |
|
||
|
Отлавливание ошибок в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Вот сам нашел "Transaction Considerations With Linked SQL Servers The Microsoft OLE DB Provider for SQL Server does not support nested transactions. Therefore, XACT_ABORT should be set to ON for data modification operations inside implicit or explicit transactions and for data modification operations against distributed partitioned views. Loopback connections to the same instance of SQL Server are not supported when inside an implicit or explicit transaction or distributed partitioned view." Попробуйте работать через процедуры на удаленном сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 10:03 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3544&tid=1825473]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 311ms |

| 0 / 0 |
