ASP网页编程之ASP中怎样挪用存储历程
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!存储历程|存储历程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
%>
</p>ASP脚本是采用明文(plaintext)方式来编写的。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 掌握asp的特性而且一定要知道为什么。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
页:
[1]