読者です 読者をやめる 読者になる 読者になる

MS Access ではTransactionScopeを使えない?

MS Access C#

.NET2.0よりTransactionScopeが登場し、トランザクションの実装が楽になった。
ただ、Accessで使えるのかどうかはわからなかったため、調査した時のメモ。

■結論

無理そう。残念。

■参考

Accessは分散トランザクションをサポートしていないため、利用できない模様。by David Sceppa (ADO.NET Program Manager)

この方が書いた「プログラミングMicrosoft ADO.NET2.0」*1にはお世話になっているので、確かな情報かと。
SQL Server Forums - Distributed Trans. Coordinator for DAO and RDO



accdbではないが、mdbではITransactionJoinをサポートしていないから、無理とのこと。

VisualStudioフォーラム - TableAdapterでトランザクション処理をしたいのですが・・・



たしかに、Jet4.0は、「ITransactionJoin」をサポートしていない(ODBCの場合は、ODBCドライバーによるらしい)。

Microsoft KB221071 - ITransactionLocal および ITransactionJoin 情報: OLE DB プロバイダーのサポート



MSDNマガジンにも、mdbは分散トランザクションがサポートされていないとの記載

http://preview.library.microsoft.com/ja-jp/magazine/aa933482



ただ、OLEDBライブラリがITransactionJoinが実装されていれば、分散トランザクションに参加OKとか。

(by COM+ Programming with Visual Basic Chapter 9. Transaction Services)

*1:英語版では、この.net4.0版が出る模様。