仓酷云

标题: ASP编程:在ASP中挪用存储历程的几种办法 [打印本页]

作者: 莫相离    时间: 2015-1-16 22:13
标题: ASP编程:在ASP中挪用存储历程的几种办法
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;存储历程1这也是最复杂的办法,两个输出参数,无前往值:
setconnection=server.createobject("adodb.connection")
connection.opensomeDSN
Connection.Execute"procnamevarvalue1,varvalue2"将一切工具清为nothing,开释资本
connection.close
setconnection=nothing

2假如要前往Recordset集:
setconnection=server.createobject("adodb.connection")
connection.opensomeDSN
setrs=server.createobject("adodb.recordset")
rs.Open"Execprocnamevarvalue1,varvalue2",connection
将一切工具清为nothing,开释资本
rs.close
connection.close
setrs=nothing
setconnection=nothing

3以上两种办法都不克不及有前往值,(Recordset除外),假如要失掉前往值,必要用Command的办法。
起首申明,前往值有两种。一种是在存储过程当中间接return一个值,就象C和VB的函数前往值那样;另外一种是能够前往多个值,存储这些值的变量称号必要在挪用参数中先行指定。
这个例子要处置多种参数,输出参数,输入参数,前往纪录集和一个间接前往值(够全了吧?)
存储历程以下:
usepubs
GO
--创建存储历程
createproceduresp_PubsTest
--界说三个参数变量,注重第三个,出格标志是用于输入
@au_lnamevarchar(20),
@intIDint,
@intIDOutintOUTPUT
AS
SELECT@intIDOut=@intID+1
SELECT*
FROMauthors
WHEREau_lnameLIKE@au_lname+%
--间接前往一个值
RETURN@intID+2

挪用该存储历程的asp程序以下:
<%@Language=VBScript%>
<%
DimCmdSP
DimadoRS
DimadCmdSPStoredProc
DimadParamReturnValue
DimadParaminput
DimadParamOutput
DimadInteger
DimiVal
DimoVal
DimadoField
DimadVarChar
‘这些值在VB中是预界说常量,能够间接挪用,但在VBScript中没有预界说
adCmdSPStoredProc=4
adParamReturnValue=4
adParaminput=1
adParamOutput=2
adInteger=3
adVarChar=200
iVal=5
oVal=3
建一个command工具
setCmdSP=Server.CreateObject("ADODB.Command")
创建保持
CmdSP.ActiveConnection="Driver={SQLServer};server=(local);Uid=sa;Pwd=;Database=Pubs"
界说command工具挪用称号
CmdSP.CommandText="sp_PubsTest"
设置command挪用范例是存储历程(adCmdSPStoredProc=4)
CmdSP.CommandType=adCmdSPStoredProc
往command工具中加参数
界说存储历程有间接前往值,而且是个整数,省缺值是4
CmdSP.Parameters.AppendCmdSP.CreateParameter("RETURN_VALUE",adInteger,adParamReturnValue,4)
界说一个字符型输出参数
CmdSP.Parameters.AppendCmdSP.CreateParameter("@au_lname",adVarChar,adParaminput,20,"M")
界说一个整型输出参数
CmdSP.Parameters.AppendCmdSP.CreateParameter("@intID",adInteger,adParamInput,,iVal)
界说一个整型输入参数
CmdSP.Parameters.AppendCmdSP.CreateParameter("@intIDOut",adInteger,adParamOutput,oVal)
运转存储历程,并失掉前往纪录集
SetadoRS=CmdSP.Execute

把每一个纪录打印出来,个中的字段是假造的,能够不必管
WhileNotadoRS.EOF
foreachadoFieldinadoRS.Fields
Response.WriteadoField.Name&"="&adoField.Value&"<br>"&vbCRLF
Next
Response.Write"<br>"
adoRS.MoveNext
Wend
打印两个输入值:
Response.Write"<p>@intIDOut=“&CmdSP.Parameters("@intIDOut").Value&"</p>"
Response.Write"<p>Returnvalue="&CmdSP.Parameters("RETURN_VALUE").Value&"</p>"

年夜打扫
SetadoRS=nothing
SetCmdSP.ActiveConnection=nothing
SetCmdSP=nothing
%>
别的另有其他体例,略微偏门一些,今后渐渐再说
本文参考了多篇文章,这里纷歧一列出。
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的
作者: 小女巫    时间: 2015-1-19 05:13
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者: 小妖女    时间: 2015-1-24 12:18
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 仓酷云    时间: 2015-2-1 11:15
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 不帅    时间: 2015-2-7 04:33
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 莫相离    时间: 2015-2-20 14:15
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 愤怒的大鸟    时间: 2015-3-6 18:12
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
作者: 若相依    时间: 2015-3-20 13:51
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。




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