
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.10.2002, 06:25:28
|
|||
|---|---|---|---|
|
|||
Не возможно создать новую транзакцию |
|||
|
#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, 09:43:52
|
|||
|---|---|---|---|
Не возможно создать новую транзакцию |
|||
|
#18+
Если начало транзакции внутри цикла, то это неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2002, 11:56:03
|
|||
|---|---|---|---|
Не возможно создать новую транзакцию |
|||
|
#18+
К предыдущему ответу (который ИМХО совершенно правильный) хочу только добавить, что открывая в цикле новую транзакцию, вы вместо одной транзакции делаете большое количество вложенных транзакций и достигаете ограничения на количество вложенных транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2002, 12:13:10
|
|||
|---|---|---|---|
Не возможно создать новую транзакцию |
|||
|
#18+
Я думаю, что проблемма здесь не во вложенности, ведь транзакция открыватся и закрыватся внутри цикла... Да и сообщает что превышена вместимость, а не уровень вложенности. Вот я попробовал в QA: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Ошибки не получил. Может проблемма в ADODB? Да и еще вопрос, а зачем явно открывать транзакцию в теле цикла? Может лучше транзакцию открывать в самой процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2002, 12:37:27
|
|||
|---|---|---|---|
|
|||
Не возможно создать новую транзакцию |
|||
|
#18+
Как правильно замечено fima транзакция открывается и закрывается в цикле. Может я неправильно рассуждаю? Конечно можно открыть одну транзакцию перед циклом, но получится что одна транзакция будет содержать 9000 Х 3 процедуры вставки записей в 3 таблицы...? Поэтому я пошел по пути - выполнил одну логическую операцию - закрыл транзакцию. Т.е. если одна транзакция не прошла - это не чревато для остальных записей. Не понятная все-таки ошибка - в BOL я ссылок на неё не получил :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2002, 12:43:07
|
|||
|---|---|---|---|
Не возможно создать новую транзакцию |
|||
|
#18+
Я считаю, что не клиентское это дело - открывать и закрывать транзакции. Лучше создать еще одну SP, в которой выполнять три нужных процедуры с контролем на TSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1819214]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 368ms |

| 0 / 0 |
