|
|
|
Не возможно создать новую транзакцию
|
|||
|---|---|---|---|
|
#18+
Поясните ситуацию Из Excel+VBA через ADODB к MS SQL 7 По циклу Код: plaintext Выполняю подряд три хранимых процедуры по вставке данных в таблицы Код: plaintext 1. после каждого выполнения ХП проверяю код ошибки Код: plaintext 1. 2. в конце закрываю транзакцию Код: plaintext Проходов по циклу порядка 9000 раз Такая ситуация - примерно через каждую 1000 (иногда больше/меньше) Получаю ошибку от сервера Cannot create new transaction because capacity was exceeded. Т.к. корректно отрабатываю ошибку (без прерывания выполнения проги) - то дальше идёт проход по циклу и опять всё идет ОК Поясните - так чего не хватает для открытия новой транзакции? И почему на следующем проходе - транзакция все-таки открывается? Вложенность транзакций всегда 1 С уважением Cannot create new transaction because capacity was exceeded. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 06:25:28 |
|
||
|
Не возможно создать новую транзакцию
|
|||
|---|---|---|---|
|
#18+
Если начало транзакции внутри цикла, то это неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 09:43:52 |
|
||
|
Не возможно создать новую транзакцию
|
|||
|---|---|---|---|
|
#18+
К предыдущему ответу (который ИМХО совершенно правильный) хочу только добавить, что открывая в цикле новую транзакцию, вы вместо одной транзакции делаете большое количество вложенных транзакций и достигаете ограничения на количество вложенных транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 11:56:03 |
|
||
|
Не возможно создать новую транзакцию
|
|||
|---|---|---|---|
|
#18+
Я думаю, что проблемма здесь не во вложенности, ведь транзакция открыватся и закрыватся внутри цикла... Да и сообщает что превышена вместимость, а не уровень вложенности. Вот я попробовал в QA: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Ошибки не получил. Может проблемма в ADODB? Да и еще вопрос, а зачем явно открывать транзакцию в теле цикла? Может лучше транзакцию открывать в самой процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 12:13:10 |
|
||
|
Не возможно создать новую транзакцию
|
|||
|---|---|---|---|
|
#18+
Как правильно замечено fima транзакция открывается и закрывается в цикле. Может я неправильно рассуждаю? Конечно можно открыть одну транзакцию перед циклом, но получится что одна транзакция будет содержать 9000 Х 3 процедуры вставки записей в 3 таблицы...? Поэтому я пошел по пути - выполнил одну логическую операцию - закрыл транзакцию. Т.е. если одна транзакция не прошла - это не чревато для остальных записей. Не понятная все-таки ошибка - в BOL я ссылок на неё не получил :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 12:37:27 |
|
||
|
Не возможно создать новую транзакцию
|
|||
|---|---|---|---|
|
#18+
Я считаю, что не клиентское это дело - открывать и закрывать транзакции. Лучше создать еще одну SP, в которой выполнять три нужных процедуры с контролем на TSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 12:43:07 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1819214]: |
0ms |
get settings: |
11ms |
get forum list: |
26ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
13ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 422ms |

| 0 / 0 |
