|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于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
%>
别的另有其他体例,略微偏门一些,今后渐渐再说
本文参考了多篇文章,这里纷歧一列出。
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的 |
|