溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

dotConnect for Oracle入門(mén)指南(六):使用事務(wù)

發(fā)布時(shí)間:2020-07-11 14:32:25 來(lái)源:網(wǎng)絡(luò) 閱讀:200 作者:復(fù)活節(jié)玩偶 欄目:關(guān)系型數(shù)據(jù)庫(kù)

【下載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ù)

事務(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í)完成。

本地事務(wù)

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方法。

<samp id="mnxzp"></samp>
  • <samp id="mnxzp"><del id="mnxzp"></del></samp>
    1
    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI