手机
当前位置:查字典教程网 >编程开发 >ASP教程 >asp存储过程使用大全
asp存储过程使用大全
摘要:1,调用没有参数的存储过程ASP调用存储过程的技巧1、最简单的如下DimobjConnSetobjConn=Server.CreateObj...

1,调用没有参数的存储过程

<%

setconn=server.CreateObject("adodb.connection")

setcmd=server.CreateObject("adodb.command")

strconn="dsn=pubs;uid=sa;pwd"

conn.Openstrconn

setcmd.ActiveConnection=conn

cmd.CommandText="{callnono}"

'setrs=cmc.exe或者cmd.execute

setrs=cmd.Execute()

%>

2,一个输入的参数的存储过程

<%

setconn=server.CreateObject("adodb.connection")

setcmd=server.CreateObject("adodb.command")

strconn="dsn=pubs;uid=sa;pwd"

conn.Openstrconn

setcmd.ActiveConnection=conn

cmd.CommandText="{calloneinput(?)}"

cmd.Parameters.Appendcmd.CreateParameter("@aaa",adInteger,adParamInput)

cmd("@aaa")=100

cmd.Execute()

%>

3,一个输入参数和一个输出的参数

<%

setconn=server.CreateObject("adodb.connection")

setcmd=server.CreateObject("adodb.command")

strconn="dsn=pubs;uid=sa;pwd"

conn.Openstrconn

setcmd.ActiveConnection=conn

cmd.CommandText="{calloneinout(?,?)}"

cmd.Parameters.Appendcmd.CreateParameter("@aaa",adInteger,adParamInput)

cmd("@aaa")=10

cmd.Parameters.Appendcmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")

%>

4,一个输入参数,一个输出参数,和一个返回值

<%

setconn=server.CreateObject("adodb.connection")

setcmd=server.CreateObject("adodb.command")

strconn="dsn=pubs;uid=sa;pwd"

conn.Openstrconn

setcmd.ActiveConnection=conn

cmd.CommandText="{?=callonereturn(?,?)}"

cmd.Parameters.Appendcmd.CreateParameter("@return_value",adInteger,adParamReturnValue)

cmd.Parameters.Appendcmd.CreateParameter("@aaa",adInteger,adParamInput)

cmd("@aaa")=10

cmd.Parameters.Appendcmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")

rrr=cmd("@return_value")

%>

如何在ASP中调用SQL存储过程

www.lucky365.net2002-2-7吉祥365

<%setconnection1=Server.CreateObject("ADODB.Connection")

connection1.open...'联接

setcommand1=Server.CreateObject("ADODB.command")

setcommand1.activeconnection=connection1

command1.commandtype=4

command1.commandtext="sp_1"'SP名

command1.parameters(1)=...'参数值

command1.parameters(2)=...

setrecordset1=command1.execute()

%>

ASP调用存储过程的技巧

1、最简单的如下

DimobjConn

SetobjConn=Server.CreateObject("ADOBD.Connection")

objConn.OpenApplication("Connection_String")

'Callthestoredproceduretoincrementacounteronthepage

objConn.Execute"execsp_AddHit"

没有参数,没有返回,没有错误处理,就是这个了

2、带参数的一种调用

objConn.Execute"execsp_AddHit'http://www.aspalliance.com"

请注意分割参数,该方法也不返回记录

3、返回记录的

DimobjConn

DimobjRs

SetobjConn=Server.CreateObject("ADOBD.Connection")

SetobjRs=Server.CreateObject("ADOBD.Recordset")

objConn.OpenApplication("Connection_String")

'Callthestoredproceduretoincrementacounteronthepage

objRs.OpenobjConn,"execsp_ListArticles'1/15/2001'"

'Loopthroughrecordsetanddisplayeacharticle

4、……

DimobjConn

DimobjCmd

'Instantiateobjects

SetobjConn=Server.CreateObject("ADODB.Connection")

setobjCmd=Server.CreateObject("ADODB.Command")

conn.OpenApplication("ConnectionString")

WithobjCmd

.ActiveConnection=conn'Youcanalsojustspecifyaconnectionstringhere

.CommandText="sp_InsertArticle"

.CommandType=adCmdStoredProc'Requirestheadovbs.incfileortypelibmetatag

'AddInputParameters

.Parameters.Append.CreateParameter("@columnist_id",adDouble,adParamInput,,columnist_id)

.Parameters.Append.CreateParameter("@url",adVarChar,adParamInput,255,url)

.Parameters.Append.CreateParameter("@title",adVarChar,adParamInput,99,url)

.Parameters.Append.CreateParameter("@description",adLongVarChar,_

adParamInput,2147483647,description)

'AddOutputParameters

.Parameters.Append.CreateParameter("@link_id",adInteger,adParamOutput,,0)

'Executethefunction

'Ifnotreturningarecordset,usetheadExecuteNoRecordsparameteroption

.Execute,,adExecuteNoRecords

link_id=.Parameters("@link_id")

EndWith

5、存储过程的代码

CreatePROCEDUREdbo.sp_InsertArticle

(

@columnist_idint,

@urlvarchar(255),

@titlevarchar(99),

@descriptiontext

@link_idintOUTPUT

)

AS

BEGIN

INSERTINTOdbo.t_link(columnist_id,url,title,description)

VALUES(@columnist_id,@url,@title,@description)

SELECT@link_id=@@IDENTITY

END

ASP调用带参数存储过程的几种方式

作者:中国论坛网收集来源:http://www.51one.net加入时间:2004-8-25

作者:讨饭猫

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

%>

此外还有其他方式,稍微偏门一些,以后慢慢再说

本文参考了多篇文章,这里不一一列出。

在Asp中使用存储过程

为了提高Asp程序的效率,有时需要在Asp中使用使用SqlServer的存储技术,下面简单作一个介绍。

存储过程的建立

这里只简单介绍如何在SqlServer的企业管理器中如何建立存储过程:

(1)打开企业管理器Enterprisemanager

(2)选择服务器组(SQLServerGroup)、服务器、数据库(Database)以及相就的数据库,鼠标右击对应数据库下的StoredProcdures项,在弹出的菜单中选择NewStoredProcedure,在StoredProceduresProperties中输入建立存储过程的语句。下面是一个例子:

CREATEPROCEDUREproctest@mycolaChar(10),@mycolbChar(10),@mycolctextAS

Insertintochatdata(mycola,mycolb,mycolc)values(@mycola,@mycolb,@mycolc)

在SqlServer的文档中它的语法为:

CREATEPROC[EDURE]procedure_name[;number][

{@parameterdata_type}[VARYING][=default][OUTPUT]]

[,...n][WITH{RECOMPILE|ENCRYPTION

|RECOMPILE,ENCRYPTION}][FORREPLICATION]AS

sql_statement[...n]

如果你对Sql语法不熟悉,可以使用CheckSyntax来检查语法。在上例中,表示建立存储过程名为mycola,带3个参数的存储过过程,其中第一个参数mycola数据类型为char,宽度10;第2个参数数据类型为char,宽度为10,第3个参数数据类型为text,在这里使用的是SqlServer的数据类型。

存储过程建立后,下面就是如何在Asp程序中调用该存储过程:在Asp中调用存储过程为了提高Asp程序的效率,有时需要在Asp中使用使用SqlServer的存储技术,下面简单作一个,在上面的增加参数的语句p.Appendcm.CreateParameter("@mycolc",201,1,250)中,格式为:

p.Appendcm.CreateParameter("参数名称",类型,方向,大小)

参许参数值的类型的意义如下:

名称值整数值功能

adDBTimeStamp135日期时间数据类型

adDecimal14十进制整数值

adDouble5双精度小数值

adError10系统错误信息

AdGUID72全域性唯一识别字(Globallyuniqueidentifier)

adDispath9COM/OLE自动对象(AutomationObject)

adInteger34字节有符号整数

adIUnknown13COM/OLE对象

adLongVarBinary205大型2字节值

adLongVarChar201大型字符串值

adLongVarWChar203大型未编码字符串

adNumeric131十进制整数值

adSingle4单精度浮点小数

adSmallInt22字节有符号整数

adTinyInt161字节有符号整数

adUnsignedBigInt218字节无符号整数

adUnsignedInt194字节无符号整数

adUnsignedSmallInt182字节无符号整数

adUnsignedTinyInt171字节无符号整数

adUserDefined132用户自定义数据类型

adVariant12OLE对象

adVarBinary204双字节字符变量值

adVarChar200字符变量值

advarchar202未编码字符串变量值

adWchar130未编码字符串

方向值的意义如下:

名称值整数值功能

adParamInput1允许数据输入至该参数当中

adParamOutput2允许数据输出至该参数当中

adParamInputOutput3允许数据输入、输出至该参数当中

adparamReturnValue4允许从一子程序中返回数据至该参数当中

更多详细资源请参考SqlServer的文档和IIS的文档资源。

【asp存储过程使用大全】相关文章:

asp中实现随机分组程序的代码

asp如何用discuz会员系统

在ASP中调用存储过程的几种方法

ASP函数大全

CacheCls缓存的应用

asp数组使用(2)

asp无限分级(递归调用)

ASP中MsgBox函数和InputBox函数的使用

sql 存储过程分页

如何将长的标题用省略号收尾

精品推荐
分类导航