仓酷云

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

[学习教程] ASP编程:ASP开辟中存储进程使用全接触

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

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

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

x
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。存储进程       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 '此处不用再获得纪录集
Set MyComm = Nothing
  固然也可经由过程Connection对象或Recordset对象挪用此类存储进程,不外创立Recordset对象是为了获得纪录集,在没有前往纪录集的情形下,仍是使用Command对象吧。


[1] [2] [3] 下一页  

</p>  当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-2-4 04:18:46 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
再现理想 该用户已被删除
板凳
发表于 2015-2-4 21:57:10 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
海妖 该用户已被删除
地板
发表于 2015-2-9 04:28:48 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
小妖女 该用户已被删除
5#
发表于 2015-2-26 21:18:26 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
变相怪杰 该用户已被删除
6#
发表于 2015-3-8 17:57:48 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
兰色精灵 该用户已被删除
7#
发表于 2015-3-9 20:46:54 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
老尸 该用户已被删除
8#
发表于 2015-3-12 12:34:05 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-15 21:08:11 | 只看该作者
掌握asp的特性而且一定要知道为什么。
再见西城 该用户已被删除
10#
发表于 2015-3-17 11:20:18 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
分手快乐 该用户已被删除
11#
发表于 2015-3-24 08:54:16 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
谁可相欹 该用户已被删除
12#
发表于 2015-4-3 04:25:43 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
透明 该用户已被删除
13#
发表于 2015-4-11 05:12:13 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
蒙在股里 该用户已被删除
14#
发表于 2015-4-12 05:13:34 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
山那边是海 该用户已被删除
15#
发表于 2015-4-12 19:02:54 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
灵魂腐蚀 该用户已被删除
16#
发表于 2015-4-15 02:55:57 | 只看该作者
那么,ASP.Net有哪些改进呢?
若天明 该用户已被删除
17#
 楼主| 发表于 2015-4-17 02:06:02 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
活着的死人 该用户已被删除
18#
发表于 2015-4-18 01:16:21 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
admin 该用户已被删除
19#
发表于 2015-4-21 20:18:02 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
爱飞 该用户已被删除
20#
发表于 2015-4-29 22:03:46 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 08:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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