亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ADO如何提供異動功能?(BIG5)

2019-11-18 22:06:27
字體:
來源:轉載
供稿:網友
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所有的改變儲存到資料庫?;蛘呤褂肦ollback方法,撤銷目前異動處理中所有已改變的資料:

<%

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)

您可以使用UpdateBatch方法,將多筆變更的記錄,批次寫回到資料庫。

使用UpdateBatch方法時,不必每一筆變更記錄都下一個Update方法,多筆記錄一起變更,最後再使用UpdateBatch方法,寫回到資料庫?;蚴鞘褂肅ancelBatch方法,放棄所有的變更。

執行本例子的資料庫必須支援UpdateBatch批次變更處理的功能,譬如SQL Server提供UpdateBatch的功能,但是Access則未提供。

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

譬如ASP程式碼rs3.asp如下,將 [檔案下載] 資料表每一筆記錄的 [檔案下載次數] 欄位加上10,再使用UpdateBatch方法將RecordSet所有的改變儲存到資料庫?;蛘呤褂肅ancelBatch方法,放棄所有的變更:

<%

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

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

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

sql = "SELECT * FROM 檔案下載"

rs3.Open sql,conn1,1,4

Do while not rs3.EOF

if IsNull(rs3("檔案下載次數")) then rs3("檔案下載次數") = 10

rs3("檔案下載次數") = rs3("檔案下載次數") + 10

rs3.MoveNext

Loop

rs3.UpdateBatch

'rs3.CancelBatch

rs3.Requery

%>

<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 rs3.EOF %>

<TR>

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

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

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

</TR>

<%

rs3.MoveNext

Loop

%>

</TABLE>

<%

rs3.Close

conn1.Close

%>

以上的 ASP程式碼rs3.asp,於用戶端使用瀏覽器,瀏覽執行的結果,顯示代號重覆的記錄。

其中rs3.Open sql,conn1,1,4的4表示為批次樂觀鎖定(Batch Optimistic lock),使用UpdateBatch方法將多筆變更的記錄批次寫回到資料庫時,才鎖定此批資料記錄。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区直播精品电影| 欧美人与性动交| 亚洲欧美成人精品| 亚洲黄色片网站| 中文字幕亚洲欧美日韩在线不卡| 日韩免费观看网站| 亚洲最新在线视频| 日韩欧美中文第一页| 亚洲va男人天堂| 久久精品中文字幕一区| 欧美另类第一页| 欧美激情一区二区三级高清视频| 激情av一区二区| 久久久久久久久中文字幕| 亚洲有声小说3d| 国产精品视频一区二区高潮| 国产欧美 在线欧美| 精品免费在线视频| 国内成人精品视频| 日韩欧美亚洲成人| 日韩欧美高清视频| 欧美成人免费一级人片100| 久久久av免费| 亚洲国产美女精品久久久久∴| 成人免费看吃奶视频网站| 懂色av一区二区三区| 国产精品网站视频| 亚洲欧洲黄色网| 91在线视频导航| 国产精品网站入口| 亚洲jizzjizz日本少妇| 国产精品久久一区| 欧美一区二区大胆人体摄影专业网站| 欧美国产日韩精品| 日韩最新中文字幕电影免费看| 91中文字幕在线| 日韩中文字幕不卡视频| 国产精品吊钟奶在线| 国产精品久久久久久久久借妻| 亚洲国产精品女人久久久| 夜夜嗨av一区二区三区免费区| 亚洲人高潮女人毛茸茸| 在线色欧美三级视频| 成人免费在线视频网址| 亚洲国内精品在线| 午夜剧场成人观在线视频免费观看| 亚洲第一区中文字幕| 亚洲最新视频在线| 久久99精品久久久久久噜噜| 欧美日韩激情美女| 国产不卡av在线免费观看| 欧美激情第6页| 伊人久久大香线蕉av一区二区| 高清一区二区三区日本久| 最近2019中文字幕大全第二页| 国产91精品高潮白浆喷水| 尤物yw午夜国产精品视频| 亚洲精品v天堂中文字幕| 欧美成人一区二区三区电影| 日韩风俗一区 二区| 精品国产31久久久久久| 午夜精品蜜臀一区二区三区免费| 91精品国产综合久久久久久蜜臀| 日产精品99久久久久久| 国产激情久久久久| 欧美成人午夜影院| 亚洲美女av在线播放| 91性高湖久久久久久久久_久久99| 国产精品一区二区三区在线播放| 国产精品久久久久久久久久久不卡| 中文字幕综合一区| 国产主播在线一区| 亚洲xxx大片| 狠狠色香婷婷久久亚洲精品| 亚洲精品福利免费在线观看| 日韩va亚洲va欧洲va国产| 久久天天躁日日躁| 亚洲欧美日韩精品久久奇米色影视| 欧美一区二区三区艳史| 国产日本欧美一区二区三区在线| 不卡av电影在线观看| 韩国国内大量揄拍精品视频| 91亚洲永久免费精品| 日韩中文字幕av| 日韩中文字幕视频在线| 欧美性理论片在线观看片免费| 欧美超级乱淫片喷水| 国产精品亚发布| 欧美午夜性色大片在线观看| 日本成人激情视频| 国产成人在线亚洲欧美| 中文字幕亚洲一区二区三区| 国产精品久久久久久久久久99| 亚洲精品一区二区三区不| 国产在线精品播放| 欧美日韩高清区| 亚洲高清av在线| 欧美最猛性xxxx| 国产精品丝袜久久久久久高清| 亚洲已满18点击进入在线看片| 91美女福利视频高清| 国产精品午夜视频| 国产日韩欧美日韩大片| 欧美大片在线看免费观看| 热久久美女精品天天吊色| 色综合影院在线| 疯狂欧美牲乱大交777| 亚洲国产精品电影| 国产精品日日摸夜夜添夜夜av| 国内偷自视频区视频综合| 亚洲视频一区二区| 亚洲国产精品女人久久久| 亚洲女人被黑人巨大进入| 91色视频在线导航| 日韩在线观看免费高清| 一区二区欧美激情| 欧美成人免费小视频| 亚洲成人久久电影| 国产在线精品播放| 久久久久免费视频| 成人国产精品久久久| 亚洲免费福利视频| 成人黄色av免费在线观看| 欧美日韩精品在线观看| 亚洲国产精品中文| 91老司机精品视频| 欧美在线国产精品| 亚洲人在线视频| 国产视频综合在线| 亚洲精品资源美女情侣酒店| 欧美激情在线狂野欧美精品| 日韩美女在线观看一区| 国产精品亚洲片夜色在线| 久久久国产精品x99av| 欧美激情在线视频二区| 九九热最新视频//这里只有精品| 69视频在线免费观看| 亚洲精品www久久久| 欧美精品精品精品精品免费| 国产日韩欧美在线视频观看| 不用播放器成人网| 欧美大尺度电影在线观看| 中文字幕一区日韩电影| 欧美性生活大片免费观看网址| 欧美日韩日本国产| 欧美成人免费观看| 国产精品久久久久国产a级| 91热精品视频| 欧美综合在线第二页| 激情懂色av一区av二区av| 亚洲九九九在线观看| 国产精品精品一区二区三区午夜版| 欧美激情三级免费| 亚洲精品久久7777777| 一区二区在线视频播放| 亚洲欧美在线免费| 国产成人鲁鲁免费视频a| 日韩大片免费观看视频播放| 国产一区二区丝袜| 韩日欧美一区二区| 久久亚洲春色中文字幕| 97视频网站入口| 欧美极品xxxx| 美日韩精品免费观看视频|