仓酷云

标题: ASP教程之存储历程先容及asp+存储历程的利用 [打印本页]

作者: 飘飘悠悠    时间: 2015-1-16 22:34
标题: ASP教程之存储历程先容及asp+存储历程的利用
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。1、先先容一下甚么是存储历程

存储历程是使用SQLServer所供应的Tranact-SQL言语所编写的程序。Tranact-SQL言语是SQLServer供应专为计划数据库使用程序的言语,它是使用程序和SQLServer数据库间的次要程序式计划界面。它比如Oracle数据库体系中的Pro-SQL和Informix的数据库体系可以中的Informix-4GL言语一样。这类言语次要供应以下功效,让用户能够计划出切合援用需求的程序:
1)、变量申明
2)、ANSI兼容的SQL命令(如Select,Update….)
3)、一样平常流程把持命令(if…else…、while….)
4)、外部函数

2、存储历程的誊写格

CREATEPROCEDURE[具有者.]存储历程名[;程序编号]
[(参数#1,…参数#1024)]
[WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}
]
[FORREPLICATION]
AS程序行
个中存储历程名不克不及凌驾128个字。每一个存储过程当中最多设定1024个参数
(SQLServer7.0以上版本),参数的利用办法以下:
@参数名数据范例[VARYING][=内定值][OUTPUT]
每一个参数名前要有一个“@”标记,每个存储历程的参数仅为该程序外部利用,参数的范例除IMAGE外,其他SQLServer所撑持的数据范例都可以使用。
[=内定值]相称于我们在创建数据库时设定一个字段的默许值,这里是为这个参数设定默许值。[OUTPUT]是用来指定该参数是既有输出又有输入值的,也就是在挪用了这个存储历程时,假如所指定的参数值是我们必要输出的参数,同时也必要在了局中输入的,则该项必需为OUTPUT,而假如只是做输入参数用,能够用CURSOR,同时在利用该参数时,必需指定VARYING和OUTPUT这两个语句。
例子:
CREATEPROCEDUREorder_tot_amt@o_idint,@p_totintoutputAS
SELECT@p_tot=sum(Unitprice*Quantity)
FROMorderdetails
WHEREordered=@o_id

例子申明:
该例子是创建一个复杂的存储历程order_tot_amt,这个存储历程依据用户输出的订单ID号码(@o_id),由订单明细表(orderdetails)上钩算该订单发卖总额[单价(Unitprice)*数目(Quantity)],这一金额经由过程@p_tot这一参数输入给挪用这一存储历程的程序

3、在SQLServer中实行存储历程

在SQLServer的查询剖析器中,输出以下代码:
declare@tot_amtint
executeorder_tot_amt1,@tot_amtoutput
select@tot_amt
以上代码是实行order_tot_amt这一存储历程,以盘算出订单编号为1的订单发卖金额,我们界说@tot_amt为输入参数,用来承接我们所要的了局

4、在ASP中挪用存储历程

<!--必需加载adovbs.inc文件,不然将堕落-->
<!--#includefile="adovbs.inc"-->
<%
dimobjCnn
dimobjCmd
dimRs
consto_id=112
-----创建Connection工具----------
setobjCnn=Server.CreateObject("Adodb.connection")
objCnn.Open"driver={sqlserver};server=localhost;uid=sa;pwd=cncanet;database=check;"
-----创建Command工具-----------
setobjCmd=Server.CreateObject("Adodb.Command")
objCmd.ActiveConnection=objCnn
objCmd.CommandText="order_tot_amt"指定存储历程称号
objCmd.CommandType=adCmdStoredProc其为StoredProcedure
-----筹办storedprocedure的参数-------
objCmd.Parameters.Append_
objCmd.CreateParameter("o_id",adInteger,adParamInput,,o_id)
objCmd.Parameters.Append_
objCmd.CreateParameter("p_tot",adBigInt,adParamOutput,,0)
-----实行存储历程----------------------
objCmd.Execute
-----输入参数和处置了局--------------
foreachparminobjCmd.Parameters
Response.Writeparm.name&"="&trim(parm)&"<br>"
next
%>

以上代码在Win2000+IIS5.0+SQLServer2000中经由过程
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。
作者: 愤怒的大鸟    时间: 2015-1-19 17:38
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: 莫相离    时间: 2015-1-25 16:56
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 蒙在股里    时间: 2015-2-3 11:53
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
作者: 仓酷云    时间: 2015-2-8 20:33
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
作者: 山那边是海    时间: 2015-3-8 12:26
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 金色的骷髅    时间: 2015-3-15 22:59
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 冷月葬花魂    时间: 2015-3-22 17:38
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2