<%@ Language=VBScript %>
<%
set xmldoc=Server.CreateObject("MSXML2.DOMDocument")
set obj=server.CreateObject("gdcom.database")
xmldoc.load Request
set objNodeList=xmldoc.getElementsByTagName("DATAITEM")
for each objNode in objNodeList
Index=objNode.attributes.getNamedItem("INDEX").nodeValue
Id=objNode.attributes.getNamedItem("ID").nodeValue
strSQL="UPDATE tblcheckuppic SET RecordTime=TO_DATE('" & DateAdd("s",Index,Now()) & "','yyyy/mm/dd hh24:mi:ss') WHERE id='" & Id & "'"
result=obj.RunSQL(strSQL)
next
Response.Write xmldoc.xml
%>
if request("main")="up" then '判断如果点击了↑,就..向上移位
if calss=1 then
response.write "已经是最高职位"
else
conn.execute "update user set c16='"&calss-1&"' where c16="&calss '排位减1,比如第5级官员就变成第4级,
conn.execute "update user set c16='"&calss+1&"' where c16="&calss-1 '排位加1,比如第4级官员就变成第5级,
end if
end if
这三步必须使用事务,否则万一磁盘操作失败,而没有撤销数据库操作,就会造成只能登陆而不能操作的“死用户”现象。
由于数据库系统特殊的发展历史,小至Access,大到DB2,无不带有事务支持。因此上述步骤可以如下表示:
On Error Resume Next
第一步:
在事务环境下把用户信息记入数据库
If Err Then
关闭连接
退出
Else
第二步:创建文件夹
If Err Then
回滚第一步数据库操作,退出
Else
第三步:在事务环境下操作日志数据库
If Err Then
回滚第一步操作,删除第二步建立的文件夹
退出
End If
End If
End If
提交第一步数据库操作的事务
提交第二步数据库操作的事务
End
<%@ TRANSACTION = Required %>
On Error Resume Next
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open ....
Conn.Execute "INSERT...."
Conn.Close
Set Conn=Nothing
Set Conn2=Server.CreateObject("ADODB.Connection")
Conn2.Open ....
Conn2.Execute "INSERT...."
Conn2.Close
Set Conn2=Nothing
Set FSO=Server.CreateObject("Scripting.FilesystemObject")
FSO.CreateFolder "...."
If Err Then
ObjectContext.SetAbort '通知所有支持事务的组件回滚,并运行手工回滚代码
Else
ObjectContext.SetComplete
End If
Set FSO=Nothing
Sub OnTransactionAbort
Response.Write "错误"
FSO.DeleteFile Server.Mappath("a.txt") 'FSO的手工回滚——删除文件夹
End Sub
Sub OnTransactionCommit
Response.Write "胜利完成任务"
End Sub
%>