·您的位置: 首页 » 资源教程 » 编程开发 » ASP » ADO如何提供异动功能(BIG5)

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

类别: ASP教程  评论数:0 总得分:0
BeginTrans/CommitTrans/Rollback方法

??您必??更新多??儋料表中的儋料?谖??r,?K催保在所有的儋料表中所作的改??都被完成(催帐Commit)、或者不??(撤湮?驮?Rollback)?r,您可以使用???樱?transaction)?砭S罪儋料的完整性。

例如,??您?㈠X?募??????R到另一??乙?????r,需要?募????羯??p去一?????K加到另一??乙???羯稀H绻?其中有一??更新失?。????艟筒???平衡。

使用???樱?transaction)功能?r,??儋料所做的任何改??都可撤湮?驮?(Rollback),或者可以催帐(Commit)?Υ嫠?有??儋料?斓母淖?。

加上???樱?transaction)功能的方法,?樵诟?新第一剐儋料?谖磺埃?先使用BeginTrans 方法,然後,只要有任何更新失?。?就可以使用RollbackTrans方法撤湮所有的更新。??您成功地更新最後一剐儋料?谖恢?後,就可使用CommitTrans方法催帐(Commit)?Υ娴劫Y料?臁<br>
ADO有三肺支援???犹?理的方法:BeginTrans、CommitTrans、陪Rollback。但是,儋料?毂旧硪脖仨?支援???犹?理的功能,譬如SQL Server提供???樱?transaction)??理的功能,但是Access?t未提供。

BeginTrans:檫始一?????犹?理,一旦檫始一?????犹?理,就必??在晷檩儋料?旎???用程式之前使用CommitTrans或Rollback。????用程式劫束?r,?]有交付催帐(Commit)的???右?自???驮?。
CommitTrans:?⒏淖??Υ娴劫Y料?熘小S寐eginTrans方法檫?????犹?理以後,CommitTrans方法?⒁ecordSet所有的改???Υ娴劫Y料?臁??绦忻ommitTrans?r,所有改??成?橛谰眯缘母淖?。
Rollback:撤湮?驮?,倒退或者撤湮目前???犹?理中所有已改??的儋料。它同?r剿止???犹?理。
???樱?transaction)例子

??我??看一??於ASP程式瘁??中使用BeginTrans/ CommitTrans/RollbackTrans提供???樱?transaction)功能的例子。

本例子,使用RecordSet 的Requery方法,重新?绦杏ELECT指令蒌入儋料到RecordSet。

?绦斜纠?子的儋料?毂仨?支援???犹?理的功能,譬如SQL Server提供???樱?transaction)??理的功能,但是Access?t未提供。

若要?绦斜纠?子,??先安砚「企?I咀站?衢T??用精啉」,以便自?屿队QL Server建立comPak儋料?臁<br>
譬如ASP程式瘁rs4.asp如下,使用BeginTrans方法檫始一?????犹?理,?? [?n案下蒌] 儋料表每一剐????的 [?n案下蒌次?递 ?谖患由媳00,再使用CommitTrans方法?⒁ecordSet所有的改???Υ娴劫Y料?臁;蛘呤褂靡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 ?n案下蒌"

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

conn1.BeginTrans

Do while not rs2.EOF

if IsNull(rs2("?n案下蒌次?郸quot;)) then rs2("?n案下蒌次?郸quot;) = 100

rs2("?n案下蒌次?郸quot;) = rs2("?n案下蒌次?郸quot;) + 100

rs2.MoveNext

Loop

conn1.CommitTrans

\'conn1.RollbackTrans

rs2.Requery

\'rs2.Close

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

\'sql = "SELECT * FROM ?n案下蒌"

\'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">?n案下蒌?n案</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?n案下蒌次?郸lt;/FONT></TD>

</TR>

<% Do while not rs2.EOF %>

<TR>

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

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("?n案下蒌?n案")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("?n案下蒌次?郸quot;)%></TD>

</TR>

<%

rs2.MoveNext

Loop

%>

以上的 ASP程式瘁rs4.asp,於用?舳耸褂??g盂器,?g盂?绦械慕Y果,使用rs2.Requery方法重新?绦杏ELECT指令蒌入儋料到RecordSet,锢示???犹?理後的????。

每?绦幸淮危????? [?n案下蒌] 儋料表每一剐????的 [?n案下蒌次?递 ?谖患由媳00。

UpdateBatch/CancelBatch (SQL Server)

您可以使用UpdateBatch方法,?⒍喙P??更的????,批次??回到儋料?臁<br>
使用UpdateBatch方法?r,不必每一剐??更????都下一??Update方法,多剐????一起??更,最後再使用UpdateBatch方法,??回到儋料?臁;蚴鞘褂妹ancelBatch方法,放??所有的??更。

?绦斜纠?子的儋料?毂仨?支援UpdateBatch批次??更??理的功能,譬如SQL Server提供UpdateBatch的功能,但是Access?t未提供。

若要?绦斜纠?子,??先安砚「企?I咀站?衢T??用精啉」,以便自?屿队QL Server建立comPak儋料?臁<br>
譬如ASP程式瘁rs3.asp如下,?? [?n案下蒌] 儋料表每一剐????的 [?n案下蒌次?递 ?谖患由媳0,再使用UpdateBatch方法?⒁ecordSet所有的改???Υ娴劫Y料?臁;蛘呤褂妹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 ?n案下蒌"

rs3.Open sql,conn1,1,4

Do while not rs3.EOF

if IsNull(rs3("?n案下蒌次?郸quot;)) then rs3("?n案下蒌次?郸quot;) = 10

rs3("?n案下蒌次?郸quot;) = rs3("?n案下蒌次?郸quot;) + 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">?n案下蒌?n案</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?n案下蒌次?郸lt;/FONT></TD>

</TR>

<% Do while not rs3.EOF %>

<TR>

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

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?n案下蒌?n案")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?n案下蒌次?郸quot;)%></TD>

</TR>

<%

rs3.MoveNext

Loop

%>

</TABLE>

<%

rs3.Close

conn1.Close

%>

以上的 ASP程式瘁rs3.asp,於用?舳耸褂??g盂器,?g盂?绦械慕Y果,锢示代??重覆的????。

其中rs3.Open sql,conn1,1,4的4表示?榕?次?酚^骈定(Batch Optimistic lock),使用UpdateBatch方法?⒍喙P??更的????批次??回到儋料???r,才骈定此批儋料????。

每?绦幸淮危????? [?n案下蒌] 儋料表每一剐????的 [?n案下蒌次?递 ?谖患由媳0。
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1