乐观 发表于 2015-2-3 23:38:21

ASP编程:在ASP法式中完成数据库事务掌握

ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了. 关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用法式|掌握|数据|数据库       在编程中,常常需求利用事务。所谓事务,就是一系列必需都胜利的操作,只需有一步操作掉败,一切其他的步调也必需撤消。好比用ASP开辟一个收集硬盘体系,其用户注册局部要做的事有:

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

  这三步必需利用事务,不然万一磁盘操作掉败,而没有撤消数据库操作,就会形成只能上岸而不克不及操作的“逝世用户”景象。

  因为数据库体系特别的开展汗青,小至Access,大到DB2,无不带有事务撑持。因而上述步调可以以下暗示:

On Error Resume Next

  第一步:

  在事务情况下把用户信息记入数据库

  If Err Then
   封闭毗连
   加入
  Else
   第二步:创立文件夹
  If Err Then
   回滚第一步数据库操作,加入
  Else
   第三步:在事务情况下操作日记数据库
  If Err Then
   回滚第一步操作,删除第二步创立的文件夹
   加入
  End If
 End If
End If
 提交第一步数据库操作的事务
 提交第二步数据库操作的事务
End
  每步都需求停止判别,假如掉败,还需求手工回滚后面多步操作,使法式变得庞杂、难明。假如从此更新了法式,增添其他步调,还需求嵌套更多层的If...Else...End If,使法式流程加倍庞杂。

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

<%@ 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
%>
  第一行的<%@ TRANSACTION = Required %>暗示这一页ASP文件需求MTS的事务撑持。两头的各个操作都按通俗按次书写,而不必思索回滚成绩。在法式最初判别是不是有毛病。假如有,挪用ObjectContext的SetAbort办法,IIS会经由过程MTS办事告诉一切撑持事务的组件回滚(次要是数据库),而且运转Sub OnTransactionAbort对不撑持事务的操作手工回滚;假如没有产生毛病,挪用ObjectContext的SetComplete办法,则会运转Sub OnTransactionCommit来显示胜利的动静。

  全部ASP法式不需求为判别毛病和回滚操作书写过剩的代码,只须在最初停止判别,即便从此增添了多步操作,也只需求在Sub OnTransactionAbort中停止掌握便可,十分便利,法式员可以专注于进程编写而不是书写纠错代码。

  其实ASP还供应了很多更有效的功效,等着咱们利用,万万不要觉得ASP利用剧本言语,功效就必定弱。
</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;

简单生活 发表于 2015-2-4 04:16:29

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

飘灵儿 发表于 2015-2-4 21:57:10

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

再现理想 发表于 2015-2-9 04:28:48

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

不帅 发表于 2015-2-11 08:18:27

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

乐观 发表于 2015-3-1 21:02:54

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

冷月葬花魂 发表于 2015-3-6 21:43:54

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

柔情似水 发表于 2015-3-10 12:50:32

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

深爱那片海 发表于 2015-3-11 18:10:25

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

金色的骷髅 发表于 2015-3-14 12:47:54

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

爱飞 发表于 2015-3-15 21:08:11

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

蒙在股里 发表于 2015-3-22 04:15:08

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

因胸联盟 发表于 2015-4-12 19:02:54

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

飘飘悠悠 发表于 2015-4-13 01:11:31

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

小妖女 发表于 2015-4-15 02:55:57

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

兰色精灵 发表于 2015-4-17 02:06:02

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

灵魂腐蚀 发表于 2015-4-19 06:17:40

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。

分手快乐 发表于 2015-4-21 20:18:02

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

admin 发表于 2015-5-8 00:10:18

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

仓酷云 发表于 2015-6-6 19:38:51

Session:这个存储跟客户端会话过程的数据,默认20分钟失效
页: [1]
查看完整版本: ASP编程:在ASP法式中完成数据库事务掌握