2012-02-27 97 views
0

如何使用ADO.NET手動事務跨兩個數據庫(在同一服務器上)刪除記錄?ASP.NET 1.1跨越兩個數據庫的事務

我碰到這樣的:

TransactionScope in .NET 1.1

,但仍希望儘可能使用.NET 1.1手工事務。

+2

DId你複製了所有的代碼?該類中顯然有一個Dispose()實現。 – Joe 2012-02-27 21:03:08

+0

看起來好喬(+1),我會繼續編碼其餘的。與此同時,這是不是可以像這裏的第一個片段那樣管理交易? http://msdn.microsoft.com/en-us/library/ms973865.aspx – IrishChieftain 2012-02-27 21:16:01

+2

ASP.NET 1.1 - >哇,不知道爲什麼,但在2012年,這聽起來比COM更糟糕:-)我真的不明白。誰是負責公司架構設計決策的人員?他們是什麼樣的人?他們有基本的編程文化嗎?他們是如何在這些職位上徘徊的? – 2012-02-27 21:27:23

回答

1

哇,自從我看了1.1以來已經有一段時間了。一個ado.net事務與一個連接相關聯,所以在1個手動事務中沒有真正的好辦法做到這一點。我記得寫一個自己的跨數據庫txn管理類,其中一個執行命令基本上會註冊它,我會自己跟蹤txns。有我自己的TransactionScope或工作單元。如果某個「完成」方法被調用,那麼如果出現錯誤或者最後全部提交,我會將其全部回滾。

在文章中的方法似乎更好,除了它會調用DTC(只要你願意,這是可以的)。我不認爲有更好的方法來做到這一點。

+0

調用DTC的含義是什麼? – IrishChieftain 2012-02-27 21:56:19

+0

好吧,只需要在機器上安裝DTC並進行正確配置,這並不是什麼大問題,但已知可以讓一些人適應大型裝置,而且還需要配置等等。坦率地說,我不知道MSDTC分配了多少性能開銷,但是它是一個協調您的事務的外部服務,並且用於協調企業分佈式事務,所以如果您只需要在同一臺服務器上需要兩個數據庫協調,它可能與打樁機駕駛釘子。 – swannee 2012-02-27 22:40:45

+0

(+1)謝謝,標記爲答案:) – IrishChieftain 2012-02-27 23:00:15