仓酷云

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

[学习教程] ASP编程:ASP挪用存储进程会见SQL Server

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:38:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。server|存储进程|会见       ASP与存储进程(Stored Procedures)的文章很多,然而我嫌疑作者们是不是真正理论过。我在初学时查阅过大批相干材料,发明个中供应的良多办法实践操作起来并非那末回事。关于复杂的使用,这些材料或许是有匡助的,但仅限于此,由于它们基本就是一模一样,相互剽窃,略微庞杂点的使用,就全都语焉不详了。
     如今,我根基上经由过程挪用存储进程会见SQL Server,以下的文字虽不敢包管相对准确,但都是理论的总结,但愿对人人能有匡助。      存储进程就是作为可履行对象寄存在数据库中的一个或多个SQL号令。
     界说老是很笼统。存储进程其实就是能完成必定操作的一组SQL语句,只不外这组语句是放在数据库中的(这里咱们只谈SQL Server)。假如咱们经由过程创立存储进程和在ASP中挪用存储进程,就能够防止将SQL语句同ASP代码混同在一同。如许做的优点最少有三个:
     第1、大大进步效力。存储进程自己的履行速度十分快,并且,挪用存储进程可以大大削减同数据库的交互次数。
     第2、进步平安性。假设将SQL语句夹杂在ASP代码中,一旦代码掉密,同时也就意味着库布局掉密。
     第3、有益于SQL语句的重用。
   
     在ASP中,普通经由过程command对象挪用存储进程,依据分歧情形,本文也引见其它挪用办法。为了便利申明,依据存储进程的输出输入,作以下复杂分类:
     1. 只前往单一纪录集的存储进程
     假定有以下存储进程(本文的目标不在于讲述T-SQL语法,所以存储进程只给出代码,不作申明):
    /*SP1*/
    CREATE PROCEDURE dbo.getUserList
    as
    set nocount on
    begin
       select * from dbo.[userinfo]
    end
    go
    以上存储进程获得userinfo表中的一切纪录,前往一个纪录集。经由过程command对象挪用该存储进程的ASP代码以下:
   
    '**经由过程Command对象挪用存储进程**
    DIM MyComm,MyRst
    Set MyComm = Server.CreateObject("ADODB.Command")
    MyComm.ActiveConnection = MyConStr          'MyConStr是数据库毗连字串
    MyComm.CommandText     = "getUserList"      '指定存储进程名
    MyComm.CommandType     = 4                      '标明这是一个存储进程
    MyComm.Prepared            = true                  '请求将SQL号令先行编译
    Set MyRst = MyComm.Execute
    Set MyComm = Nothing
    存储进程获得的纪录集赋给MyRst,接上去,可以对MyRst停止操作。
    在以上代码中,CommandType属性标明恳求的类型,取值及申明以下:
      -1   标明CommandText参数的类型没法肯定
      1    标明CommandText是普通的号令类型
      2    标明CommandText参数是一个存在的表称号
      4    标明CommandText参数是一个存储进程的称号
   
    还可以经由过程Connection对象或Recordset对象挪用存储进程,办法分离以下:
    '**经由过程Connection对象挪用存储进程**
    DIM MyConn,MyRst
    Set MyConn = Server.CreateObject("ADODB.Connection")
    MyConn.open MyConStr                            'MyConStr是数据库毗连字串
    Set MyRst  = MyConn.Execute("getUserList",0,4)  '最初一个参断寄义同CommandType
    Set MyConn = Nothing
    '**经由过程Recordset对象挪用存储进程**
    DIM MyRst
    Set MyRst = Server.CreateObject("ADODB.Recordset")
    MyRst.open "getUserList",MyConStr,0,1,4
    'MyConStr是数据库毗连字串,最初一个参断寄义与CommandType不异
   
    2. 没有输出输入的存储进程
    请看以下存储进程:
    /*SP2*/
    CREATE PROCEDURE dbo.delUserAll
    as
    set nocount on
    begin
       delete from dbo.[userinfo]
    end
    go
    该存储进程删去userinfo表中的一切纪录,没有任何输出及输入,挪用办法与下面讲过的根基不异,只是不必获得纪录集:
    '**经由过程Command对象挪用存储进程**
    DIM MyComm
    Set MyComm = Server.CreateObject("ADODB.Command")
    MyComm.ActiveConnection = MyConStr          'MyConStr是数据库毗连字串
    MyComm.CommandText      = "delUserAll"      '指定存储进程名
    MyComm.CommandType      = 4                 '标明这是一个存储进程
    MyComm.Prepared         = true              '请求将SQL号令先行编译
    MyComm.Execute   &nbs
  asp可以使用微软的activeX 使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
老尸 该用户已被删除
沙发
发表于 2015-2-4 04:18:46 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
活着的死人 该用户已被删除
板凳
发表于 2015-2-8 01:23:47 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
小妖女 该用户已被删除
地板
发表于 2015-2-23 21:24:12 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
山那边是海 该用户已被删除
5#
 楼主| 发表于 2015-3-8 12:19:21 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-15 22:42:40 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
小魔女 该用户已被删除
7#
发表于 2015-3-17 16:11:16 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
透明 该用户已被删除
8#
发表于 2015-3-24 11:42:29 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
乐观 该用户已被删除
9#
发表于 2015-3-31 18:26:52 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
再现理想 该用户已被删除
10#
发表于 2015-4-1 01:10:29 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
再见西城 该用户已被删除
11#
发表于 2015-4-3 09:44:15 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
分手快乐 该用户已被删除
12#
发表于 2015-4-11 07:18:24 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
不帅 该用户已被删除
13#
发表于 2015-4-14 19:25:31 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
飘飘悠悠 该用户已被删除
14#
发表于 2015-4-15 11:10:18 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
若相依 该用户已被删除
15#
发表于 2015-4-16 13:12:00 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
柔情似水 该用户已被删除
16#
发表于 2015-4-17 01:01:59 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
17#
发表于 2015-4-18 01:16:21 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
愤怒的大鸟 该用户已被删除
18#
发表于 2015-6-10 19:17:47 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
简单生活 该用户已被删除
19#
发表于 2015-7-2 05:24:57 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-29 18:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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