powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSQL через ADO - пул соединений и чудеса с незавершенными транзакциями
3 сообщений из 28, страница 2 из 2
MSSQL через ADO - пул соединений и чудеса с незавершенными транзакциями
    #39723812
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgMindпропущено...
А вот это конечно форменная глупость.Да в принципе можно и не посылать. Но тогда нужно быть уверенным, что выполняешь Close (возвращая коннект в пул, или реально его закрывая, это уже неважно, результат будет одинаковый).Тому кто в этом коде потом будет пытаться разобраться тоже нужно будет всегда помнить о том что где-то там была открыта транзакция, а вот тут логически она должна бы откатываться, но это необязательно, потому что где-то там в другом месте наверняка есть Close.
...
Рейтинг: 0 / 0
MSSQL через ADO - пул соединений и чудеса с незавершенными транзакциями
    #39723826
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mindalexeyvgпропущено...
Да в принципе можно и не посылать. Но тогда нужно быть уверенным, что выполняешь Close (возвращая коннект в пул, или реально его закрывая, это уже неважно, результат будет одинаковый).Тому кто в этом коде потом будет пытаться разобраться тоже нужно будет всегда помнить о том что где-то там была открыта транзакция, а вот тут логически она должна бы откатываться, но это необязательно, потому что где-то там в другом месте наверняка есть Close.А это уже вопрос организации кода, внутренней архитектуры.

Конечно, если код - это миллион строк с равномерным вкраплением работы с ADO, то да, надёжнее делать rollback.
Но, вообще говоря, в таком коде будут ошибки, ставь rollback или не ставь - ведь ветка могла пойти и по другому, правильно?

Более безопасно - обрамлять объект ADOConnection в using, и не делать циклов внутри, тогда трудно ошибиться, и "не закрыть". Но в этом случае какой нибудь ушлый кодер может обойти правила, потому что "очень надо, а мне манеджер сказал, что...", и вот там уже наделать косяков.

А самое надёжное - делать свою обёртку, в которой будет один вызов - одно обращение к сиквелу, с одним открытием/закрытием коннекта. Вот это гарантирукет, потому что "оно само", плюс можно вылизать работу с ADO до совершенства.

Мы, например, делали такую обёртку на основе Microsoft Enterprise Library, и получили не только гарантию от этих ошибок, но и от многих других, да ещё и, например, высокую скорость, потому что в тыщах мест кода никто не будет заморачиваться перформансом, а один раз можно.
...
Рейтинг: 0 / 0
MSSQL через ADO - пул соединений и чудеса с незавершенными транзакциями
    #39723847
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgДа в принципе можно и не посылать. Но тогда нужно быть уверенным, что выполняешь CloseНе поможет.
У ТС управлегние транзакциями не методами OLE DB и sp_reset_connection вызывается в момент повторного использования, а не по Close. Так что транзакция останется открытой.
...
Рейтинг: 0 / 0
3 сообщений из 28, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSQL через ADO - пул соединений и чудеса с незавершенными транзакциями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]