仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 421|回复: 7
打印 上一主题 下一主题

[学习教程] ASP编程:在ASP中利用事件把持

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:08:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP脚本是采用明文(plaintext)方式来编写的。把持作者系2月份微软社区之星MicrosoftChinaCommunityStar

在编程中,常常必要利用事件。所谓事件,就是一系列必需都乐成的操纵,只需有一步操纵失利,一切其他的步骤也必需打消。好比用ASP开辟一个收集硬盘体系,其用户注册部分要做的事有:

将用户信息记进数据库
为用户开个文件夹用于存储
初始化用户操纵日记

这三步必需利用事件,不然万一磁盘操纵失利,而没有打消数据库操纵,就会形成只能上岸而不克不及操纵的“逝世用户”征象。
因为数据库体系特别的开展汗青,小至Access,年夜到DB2,无不带有事件撑持。因而上述步骤能够以下暗示:
OnErrorResumeNext
第一步:
在事件情况下把用户信息记进数据库
IfErrThen
封闭毗连
加入
Else
第二步:创立文件夹
IfErrThen
回滚第一步数据库操纵,加入
Else
第三步:在事件情况下操纵日记数据库
IfErrThen
回滚第一步操纵,删除第二步创建的文件夹
加入
EndIf
EndIf
EndIf
提交第一步数据库操纵的事件
提交第二步数据库操纵的事件
End


每步都必要举行判别,假如失利,还必要手工回滚后面多步操纵,使程序变得庞大、难明。假如从此更新了程序,增添其他步骤,还必要嵌套更多层的If...Else...EndIf,使程序流程加倍庞大。

准确的办理举措是利用ASP的事件把持功效。IIS经由过程和MTS服务接洽,能够把持多种撑持事件的体系,当程序收回“失利”的旌旗灯号时,一切撑持事件的体系均将主动回滚,即便操纵已正式完成;对不撑持事件的操纵也供应了便利的手工回滚体例。下面的例子用ASP事件把持功效重写以下:

<%@TRANSACTION=Required%>
OnErrorResumeNext

SetConn=Server.CreateObject("ADODB.Connection")
Conn.Open....
Conn.Execute"INSERT...."
Conn.Close
SetConn=Nothing

SetConn2=Server.CreateObject("ADODB.Connection")
Conn2.Open....
Conn2.Execute"INSERT...."
Conn2.Close
SetConn2=Nothing

SetFSO=Server.CreateObject("Scripting.FilesystemObject")
FSO.CreateFolder"...."

IfErrThen
ObjectContext.SetAbort关照一切撑持事件的组件回滚,并运转手工回滚代码
Else
ObjectContext.SetComplete
EndIf
SetFSO=Nothing

SubOnTransactionAbort
Response.Write"毛病"
FSO.DeleteFileServer.Mappath("a.txt")FSO的手工回滚――删除文件夹
EndSub
SubOnTransactionCommit
Response.Write"成功完成义务"
EndSub
%>

第一行的<%@TRANSACTION=Required%>暗示这一页ASP文件必要MTS的事件撑持。两头的各个操纵都按一般按次誊写,而不必思索回滚成绩。在程序最初判别是不是有毛病。假如有,挪用ObjectContext的SetAbort办法,IIS会经由过程MTS服务关照一切撑持事件的组件回滚(次要是数据库),而且运转SubOnTransactionAbort对不撑持事件的操纵手工回滚;假如没有产生毛病,挪用ObjectContext的SetComplete办法,则会运转SubOnTransactionCommit来显现乐成的动静。
全部ASP程序不必要为判别毛病和回滚操纵誊写过剩的代码,只须在最初举行判别,即便从此增添了多步操纵,也只必要在SubOnTransactionAbort中举行把持便可,十分便利,程序员能够专注于历程编写而不是誊写纠错代码。
实在ASP还供应了很多更有效的功效,等着我们利用,万万不要觉得ASP利用剧本言语,功效就必定弱。
</p>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。
柔情似水 该用户已被删除
沙发
发表于 2015-1-28 15:31:01 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
因胸联盟 该用户已被删除
板凳
发表于 2015-2-5 14:57:36 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
爱飞 该用户已被删除
地板
发表于 2015-2-12 08:59:14 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
冷月葬花魂 该用户已被删除
5#
发表于 2015-3-3 01:08:30 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
山那边是海 该用户已被删除
6#
发表于 2015-3-11 08:13:22 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
兰色精灵 该用户已被删除
7#
发表于 2015-3-17 23:51:05 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
小妖女 该用户已被删除
8#
发表于 2015-3-25 07:57:09 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表