ADO如何提供异动功能?(BIG5)

2016-01-29 18:07 1 1 收藏

ADO如何提供异动功能?(BIG5),ADO如何提供异动功能?(BIG5)

【 tulaoshi.com - ASP 】

  BeginTrans/CommitTrans/Rollback方法

當您必須更新多個資料表中的資料欄位時,並確保在所有的資料表中所作的改變都被完成(確認Commit)、或者不變(撤銷復原Rollback)時,您可以使用異動(transaction)來維護資料的完整性。

例如,當您將錢從甲帳戶匯到另一個乙帳戶時,需要從甲帳戶上減去一個數並加到另一個乙帳戶上。如果其中有一個更新失敗,帳戶就不會平衡。

使用異動(transaction)功能時,對資料所做的任何改變都可撤銷復原(Rollback),或者可以確認(Commit)儲存所有對資料庫的改變。

加上異動(transaction)功能的方法,為在更新第一筆資料欄位前,先使用BeginTrans 方法,然後,只要有任何更新失敗,就可以使用RollbackTrans方法撤銷所有的更新。當您成功地更新最後一筆資料欄位之後,就可使用CommitTrans方法確認(Commit)儲存到資料庫。

ADO有三種支援異動處理的方法:BeginTrans、CommitTrans、與Rollback。但是,資料庫本身也必須支援異動處理的功能,譬如SQL Server提供異動(transaction)處理的功能,但是Access則未提供。

BeginTrans:開始一個異動處理,一旦開始一個異動處理,就必須在關閉資料庫或應用程式之前使用CommitTrans或Rollback。當應用程式結束時,沒有交付確認(Commit)的異動要自動復原。
CommitTrans:將改變儲存到資料庫中。用BeginTrans方法開啟異動處理以後,CommitTrans方法將RecordSet所有的改變儲存到資料庫。執行CommitTrans時,所有改變成為永久性的改變。
Rollback:撤銷復原,倒退或者撤銷目前異動處理中所有已改變的資料。它同時終止異動處理。
異動(transaction)例子

讓我們看一個於ASP程式碼當中使用BeginTrans/ CommitTrans/RollbackTrans提供異動(transaction)功能的例子。

本例子,使用RecordSet 的Requery方法,重新執行SELECT指令載入資料到RecordSet。

執行本例子的資料庫必須支援異動處理的功能,譬如SQL Server提供異動(transaction)處理的功能,但是Access則未提供。

若要執行本例子,請先安裝「企業網站熱門應用精選」,以便自動於SQL Server建立comPak資料庫。

譬如ASP程式碼rs4.asp如下,使用BeginTrans方法開始一個異動處理,將 [檔案下載] 資料表每一筆記錄的 [檔案下載次數] 欄位加上100,再使用CommitTrans方法將RecordSet所有的改變儲存到資料庫。或者使用Rollback方法,撤銷目前異動處理中所有已改變的資料:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=comPak"

Set rs2 = Server.CreateObject("ADODB.Recordset")

sql = "SELECT * FROM 檔案下載"

rs2.Open sql,conn1,1,2,1

conn1.BeginTrans

Do while not rs2.EOF

if IsNull(rs2("檔案下載次數")) then rs2("檔案下載次數") = 100

rs2("檔案下載次數") = rs2("檔案下載次數") + 100

rs2.MoveNext

Loop

conn1.CommitTrans

'conn1.RollbackTrans

rs2.Requery

'rs2.Close

'Set rs2 = Server.CreateObject("ADODB.Recordset")

'sql = "SELECT * FROM 檔案下載"

'rs2.Open sql,conn1,1,2,1

%

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0

<TR

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"名稱</FONT</TD

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"檔案下載檔案</FONT</TD

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"檔案下載次數</FONT</TD

</TR

<% Do while not rs2.EOF %

<TR

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs2("名稱")%</TD

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs2("檔案下載檔案")%</TD

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs2("檔案下載次數")%</TD

</TR

<%

rs2.MoveNext

Loop

%

以上的 ASP程式碼rs4.asp,於用戶端使用瀏覽器,瀏覽執行的結果,使用rs2.Requery方法重新執行SELECT指令載入資料到RecordSet,顯示異動處理後的記錄。

每執行一次,會將 [檔案下載] 資料表每一筆記錄的 [檔案下載次數] 欄位加上100。

UpdateBatch/CancelBatch (SQL Server)

您可

来源:https://www.tulaoshi.com/n/20160129/1504401.html

延伸阅读
标签: ASP
    In the past, data access was done using a two-tiered, connected model. With the increased development of multi-tiered applications, the need for a disconnected model has arisen. The ADO+ managed providers give us this model. Managed providers are responsible for creating connections between Dat...
WPS中如何提供传统修改的审阅功能   传统的文章修改一般用彩笔勾勾画画,修改之后的文章一目了然。电子稿若通过普通手段增删改之后,往往看不出修改的痕迹。为此,WPS中提供了效仿传统修改的审阅功能。 给别人修改文章,要添加建议,只需点击审阅菜单,用插入批注按钮插入批注意见即可(图4)。若发现文章出现内容错误、重复、缺...
  把 HTML BIG 标记放置在 String 对象中的文本两端。 strVariable . big( ) 必选项 strVariable 参数可以是任意的 String 对象或文字。 说明 下面示例说明了 big 方法是如何工作的: var strVariable = "This is a string object";strVariable = strVariable. big( ) ; 在执行完最后一个语句...
标签: 电脑入门
暂不提供以下功能: 1、暂不支持文件夹发送、接收; 2、暂无单独发起语音聊天功能; 3、暂无单独发起语音聊天功能,但可以接收其他QQ发过来的语音聊天邀请。语音聊天过程中,不会启用自己的摄像头,不会给对方发送自己的视频; 4、暂不提供网络硬盘服务; 5、暂不提供会员服务; 6、暂不提供更多腾讯相关服务。
ADO 与ADO.NET摘要ADO与ADO.NET是微软提供的一种高性能访问信息源的策略,这些技术可以使企业很方便的整合多种数据源,创建易维护的解决方案。目录1. ADO与ADO.NET简介2. 数据访问方式的历史3. ADO与ADO.NET对照4. 小结 1. ADO与ADO.NET简介ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且...

经验教程

572

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部