您好,登錄后才能下訂單哦!
【下載dotConnect for Oracle最新版本】
dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技術(shù)上,為基于Oracle數(shù)據(jù)庫(kù)的應(yīng)用程序提供完整的解決方案。它為設(shè)計(jì)應(yīng)用程序結(jié)構(gòu)帶來(lái)了新的方法,提高工作效率,使數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)更簡(jiǎn)便。
使用事務(wù)
了解事務(wù)
本地事務(wù)
OCI模式下的分布式事務(wù)
直接模式下的分布式事務(wù)
事務(wù)是一個(gè)或多個(gè)被視為單個(gè)工作單元的操作,完全完成或完全無(wú)效(“全部或無(wú)”)。如果事務(wù)中某一點(diǎn)發(fā)生故障,則所有更新都可以回滾到其事務(wù)前狀態(tài)。事務(wù)必須符合ACID屬性-原子性、一致性、隔離性和持久性,以確保數(shù)據(jù)一致性。
如果一個(gè)事務(wù)涉及同一數(shù)據(jù)庫(kù)中的多個(gè)表,那么PL/SQL中的顯式事務(wù)通常執(zhí)行得更好。您可以在SQL中使用Commit和Rollback語(yǔ)句分別修復(fù)和放棄當(dāng)前PL/SQL塊中以前的命令。
否則,可以通過(guò)設(shè)計(jì)用于Oracle數(shù)據(jù)庫(kù)的庫(kù)/程序集中的特殊命令類來(lái)實(shí)現(xiàn)具有普通SQL的事務(wù)。例如,您可以使用devart.data.oracle.oraclecommand:在oraclecommand的連接上啟動(dòng)事務(wù),通過(guò)此oraclecommand執(zhí)行多個(gè)SQL語(yǔ)句,并在必要時(shí)提交/回滾所有操作。請(qǐng)參閱本地事務(wù)主題中的示例。
本文描述了從.NET代碼(不包含envolving PL/SQL事務(wù))操作事務(wù)的方法——這是處理事務(wù)最常見(jiàn)的情況。關(guān)于您的任務(wù),您可以選擇要實(shí)現(xiàn)的事務(wù)類型-本地或分布式。當(dāng)事務(wù)是單階段事務(wù)并且由數(shù)據(jù)庫(kù)直接處理時(shí),被認(rèn)為是本地事務(wù)的事務(wù)。分布式事務(wù)是一個(gè)影響多個(gè)資源的事務(wù),它由事務(wù)監(jiān)視器協(xié)調(diào),并使用故障保護(hù)機(jī)制(如兩階段提交)來(lái)解決事務(wù)。
注意:Oracle不支持SQL Server中使用的可升級(jí)事務(wù),分布式事務(wù)的實(shí)現(xiàn)在OCI和Direct模式下有所不同。還要考慮到TransactionScope(分布式事務(wù))僅在處理時(shí)完成。
dotConnect for Oracle具有用于執(zhí)行本地事務(wù)的OracleTransaction對(duì)象。當(dāng)一個(gè)連接對(duì)象上的多個(gè)操作應(yīng)作為一個(gè)事務(wù)執(zhí)行時(shí),使用OracleTransaction。應(yīng)用程序通過(guò)對(duì)OracleConnection對(duì)象調(diào)用BeginTransaction來(lái)創(chuàng)建OracleTransaction對(duì)象。與事務(wù)相關(guān)聯(lián)的所有后續(xù)操作(例如,提交或中止事務(wù))都在OracleTransaction對(duì)象上執(zhí)行。OracleConnection和OracleTransaction之間的相關(guān)性始終為1:1。因此,一次只能為單獨(dú)的OracleConnection創(chuàng)建一個(gè)OracleTransaction。
例子:
下面的示例創(chuàng)建OracleConnection和OracleTransaction。它還演示了如何使用BeginTransaction、Commit和Rollback方法。