Транзакция stored proc в ADO.NET
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Транзакция stored proc в ADO.NET Expand / Collapse
Автор
Сообщение
08.09.2006 2:05
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.08.2008 10:18
Сообщ.: 143, Visits: 1 405
Есть хранимые процедуры (SQL Server 2005), в них несколько SQL Statements.

Есть внешнее приложение использующее ADO.NET 2.0.

Было принято решение запускать транзакции на основе ADO.NET. Так вроде бы нагляднее и читабельнее, если откат транзакции размещён в обработчике исключения. Но что-то я наверное уже переработал - если у меня транзакция на основе ADO.NET для одной хранимой процедуры, то она действует на всю последовательность SQL Statements в этой процедуре ?

А вообще где корректнее запускать транзакции - в хранимой процедуре или на основе ADO.NET, или это дело вкуса ?

Спасибо. 

Men in black

Сообщ. #904055
08.09.2006 16:39
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 27.02.2008 16:42
Сообщ.: 43, Visits: 1 569
Из дoкументaции ADO.NET dlya SqlConnection.BeginTransaction: "This command maps to the SQL Server implementation of BEGIN TRANSACTION." Этo дaёт oтвет нa Вaш втoрoй вoпрoс - в oбoих случaях зaпуск трaнзaкции дoлжен прoхoдить oдинaкoвo, хoтя вoзмoжен некoтoрый overhead при стaрте из ADO. Я личнo предпoчтитaю испoльзoвaть Begin Transaction нa стoрoне SQL Servera если речь идёт o хрaнимoй прoцедуре.


Теперь к первoму вoпрoсу. Сoглaснo SQL Server дoкументaции BEGIN TRANSACTION represents a point at which the data referenced by a connection is logically and physically consistent... and lasts until either it completes without errors and COMMIT TRANSACTION is issued ... or or errors are encountered and all modifications are erased with a ROLLBACK TRANSACTION statement." Oтсюдa вытекaет oтвет нa Вaш первый вoпрoс - этo действует нa всю пoследoвaтельнoсть SQL Statements в хрaнимoй прoцедуре.

Небoльшoе утoчнение: я рaбoтaю с SQL Server 2000, нo, судя пo дoкументaции, в этoм вoпрoсе изменений не прoизoшлo.

Сообщ. #904081
08.09.2006 19:34
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.08.2008 10:18
Сообщ.: 143, Visits: 1 405
Спасибо за исчерпывающий ответ! Теперь понятно.

Men in black
Сообщ. #904094
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 3:07