1、最简单的如下

ASP调用存储过程的技巧Dim objConn
ASP调用存储过程的技巧
Set objConn = Server.CreateObject('ADOBD.Connection')
ASP调用存储过程的技巧
objConn.Open Application('Connection_String')
ASP调用存储过程的技巧'
Call the stored procedure to increment a counter on the page
ASP调用存储过程的技巧
objConn.Execute 'exec sp_AddHit'
ASP调用存储过程的技巧


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

2、带参数的一种调用
objConn.Execute 'exec sp_AddHit 'http://www.aspalliance.com', 1'
请注意分割参数,该方法也不返回记录

3、返回记录的

ASP调用存储过程的技巧Dim objConn
ASP调用存储过程的技巧
Dim objRs
ASP调用存储过程的技巧
Set objConn = Server.CreateObject('ADOBD.Connection')
ASP调用存储过程的技巧
Set objRs = Server.CreateObject('ADOBD.Recordset')
ASP调用存储过程的技巧
objConn.Open Application('Connection_String')
ASP调用存储过程的技巧'
Call the stored procedure to increment a counter on the page
ASP调用存储过程的技巧
objRs.Open objConn, 'exec sp_ListArticles '1/15/2001''
ASP调用存储过程的技巧'
Loop through recordset and display each article
ASP调用存储过程的技巧


4、……

ASP调用存储过程的技巧Dim objConn
ASP调用存储过程的技巧
Dim objCmd
ASP调用存储过程的技巧
ASP调用存储过程的技巧
'Instantiate objects
ASP调用存储过程的技巧
Set objConn = Server.CreateObject('ADODB.Connection')
ASP调用存储过程的技巧
set objCmd = Server.CreateObject('ADODB.Command')
ASP调用存储过程的技巧
conn.Open Application('ConnectionString')
ASP调用存储过程的技巧

ASP调用存储过程的技巧
With objCmd
ASP调用存储过程的技巧.ActiveConnection 
= conn 'You can also just specify a connection string here
ASP调用存储过程的技巧
.CommandText = 'sp_InsertArticle' 
ASP调用存储过程的技巧
.CommandType = adCmdStoredProc 'Requires the adovbs.inc file or typelib meta tag
ASP调用存储过程的技巧

ASP调用存储过程的技巧
'Add Input Parameters
ASP调用存储过程的技巧
.Parameters.Append .CreateParameter('@columnist_id', adDouble, adParamInput, , columnist_id)
ASP调用存储过程的技巧
.Parameters.Append .CreateParameter('@url', adVarChar, adParamInput, 255, url)
ASP调用存储过程的技巧
.Parameters.Append .CreateParameter('@title', adVarChar, adParamInput, 99, url)
ASP调用存储过程的技巧
.Parameters.Append .CreateParameter('@description', adLongVarChar, _
ASP调用存储过程的技巧
adParamInput, 2147483647, description)
ASP调用存储过程的技巧
ASP调用存储过程的技巧
'Add Output Parameters
ASP调用存储过程的技巧
.Parameters.Append .CreateParameter('@link_id', adInteger, adParamOutput, , 0)
ASP调用存储过程的技巧

ASP调用存储过程的技巧
'Execute the function
ASP调用存储过程的技巧'
If not returning a recordset, use the adExecuteNoRecords parameter option
ASP调用存储过程的技巧
.Execute, , adExecuteNoRecords
ASP调用存储过程的技巧link_id 
= .Parameters('@link_id')
ASP调用存储过程的技巧
End With
ASP调用存储过程的技巧
ASP调用存储过程的技巧

5、存储过程的代码

ASP调用存储过程的技巧Create PROCEDURE dbo.sp_InsertArticle
ASP调用存储过程的技巧(
ASP调用存储过程的技巧
@columnist_id int,
ASP调用存储过程的技巧
@url varchar(255),
ASP调用存储过程的技巧
@title varchar(99),
ASP调用存储过程的技巧
@description text
ASP调用存储过程的技巧
@link_id int OUTPUT
ASP调用存储过程的技巧)
ASP调用存储过程的技巧
AS
ASP调用存储过程的技巧
BEGIN
ASP调用存储过程的技巧
Insert INTO dbo.t_link (columnist_id,url,title,description)
ASP调用存储过程的技巧
VALUES (@columnist_id,@url,@title,@description)
ASP调用存储过程的技巧
ASP调用存储过程的技巧
Select @link_id = @@IDENTITY
ASP调用存储过程的技巧
END 
ASP调用存储过程的技巧
ASP调用存储过程的技巧

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

最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法。

1 这也是最简单的方法,两个输入参数,无返回值:

ASP调用存储过程的技巧set connection = server.createobject('adodb.connection')
ASP调用存储过程的技巧
connection.open someDSN 
ASP调用存储过程的技巧Connection.Execute 
'procname varvalue1, varvalue2'
ASP调用存储过程的技巧

ASP调用存储过程的技巧
''将所有对象清为nothing,释放资源
ASP调用存储过程的技巧
connection.close
ASP调用存储过程的技巧
set connection = nothing
ASP调用存储过程的技巧

2 如果要返回 Recordset 集:

ASP调用存储过程的技巧set connection = server.createobject('adodb.connection')
ASP调用存储过程的技巧
connection.open someDSN 
ASP调用存储过程的技巧
set rs = server.createobject('adodb.recordset')
ASP调用存储过程的技巧
rs.Open 'Exec procname varvalue1, varvalue2',connection
ASP调用存储过程的技巧

ASP调用存储过程的技巧
''将所有对象清为nothing,释放资源
ASP调用存储过程的技巧
rs.close
ASP调用存储过程的技巧connection.close
ASP调用存储过程的技巧
set rs = nothing
ASP调用存储过程的技巧
set connection = nothing
ASP调用存储过程的技巧
ASP调用存储过程的技巧

3 以上两种方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。
首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象C和VB的函数返回值那样;另一种是可以返回多个值,存
储这些值的变量名称需要在调用参数中先行指定。
这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?)
存储过程如下:

 

ASP调用存储过程的技巧use pubs
ASP调用存储过程的技巧
GO
ASP调用存储过程的技巧
ASP调用存储过程的技巧
-- 建立存储过程
ASP调用存储过程的技巧
create procedure sp_PubsTest
ASP调用存储过程的技巧
ASP调用存储过程的技巧
-- 定义三个参数变量,注意第三个,特别标记是用于输出
ASP调用存储过程的技巧
@au_lname varchar (20), 
ASP调用存储过程的技巧
@intID int,
ASP调用存储过程的技巧
@intIDOut int OUTPUT
ASP调用存储过程的技巧
ASP调用存储过程的技巧
AS
ASP调用存储过程的技巧
ASP调用存储过程的技巧
Select @intIDOut = @intID + 1
ASP调用存储过程的技巧
ASP调用存储过程的技巧
Select * 
ASP调用存储过程的技巧
FROM authors 
ASP调用存储过程的技巧
Where au_lname LIKE @au_lname + ''%''
ASP调用存储过程的技巧
ASP调用存储过程的技巧
--直接返回一个值
ASP调用存储过程的技巧
RETURN @intID + 2
ASP调用存储过程的技巧
ASP调用存储过程的技巧

调用该存储过程的asp程序如下: 


此外还有其他方式,稍微偏门一些,以后慢慢再说
本文参考了多篇文章,这里不一一列出。

在Asp中使用存储过程

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

存储过程的建立

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

(1)打开企业管理器Enterprise manager

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

ASP调用存储过程的技巧Create PROCEDURE proctest @mycola Char(10),@mycolb Char(10),@mycolc text  AS 
ASP调用存储过程的技巧
ASP调用存储过程的技巧  
Insert into chatdata (mycola,mycolb,mycolc) values(@mycola,@mycolb,@mycolc
ASP调用存储过程的技巧
ASP调用存储过程的技巧在Sql Server的文档中它的语法为: 
ASP调用存储过程的技巧
ASP调用存储过程的技巧  
Create PROC[EDURE] procedure_name [;number]   [ 
ASP调用存储过程的技巧
ASP调用存储过程的技巧  {@parameter data_type} [VARYING
] [= default] [OUTPUT]   ] 
ASP调用存储过程的技巧
ASP调用存储过程的技巧  
[,ASP调用存储过程的技巧n]  [WITH    {   RECOMPILE   | ENCRYPTION 
ASP调用存储过程的技巧
ASP调用存储过程的技巧  | RECOMPILE, ENCRYPTION   }  
]  [FOR REPLICATION]  AS 
ASP调用存储过程的技巧
ASP调用存储过程的技巧   sql_statement 
[ASP调用存储过程的技巧n] 
ASP调用存储过程的技巧
ASP调用存储过程的技巧

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

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

p.Append cm.CreateParameter('参数名称',类型,方向,大小)

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

名称值 整数值 功能


adDBTimeStamp 135 日期时间数据类型

adDecimal 14 十进制整数值

adDouble 5 双精度小数值

adError 10 系统错误信息

AdGUID 72 全域性唯一识别字(Globally unique identifier)

adDispath 9 COM/OLE自动对象(Automation Object)

adInteger 3 4字节有符号整数

adIUnknown 13 COM/OLE对象

adLongVarBinary 205 大型2字节值

adLongVarChar 201 大型字符串值

adLongVarWChar 203 大型未编码字符串

adNumeric 131 十进制整数值

adSingle 4 单精度浮点小数

adSmallInt 2 2字节有符号整数

adTinyInt 16 1字节有符号整数

adUnsignedBigInt 21 8字节无符号整数

adUnsignedInt 19 4字节无符号整数

adUnsignedSmallInt 18 2字节无符号整数

adUnsignedTinyInt 17 1字节无符号整数

adUserDefined 132 用户自定义数据类型

adVariant 12 OLE对象

adVarBinary 204 双字节字符变量值

adVarChar 200 字符变量值

advarchar 202 未编码字符串变量值

adWchar 130 未编码字符串


方向值的意义如下:


名称值 整数值 功能


adParamInput 1 允许数据输入至该参数当中

adParamOutput 2 允许数据输出至该参数当中

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

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

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


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=641036

 

相关文章:

  • 2021-12-09
  • 2021-10-04
  • 2021-07-24
  • 2021-06-01
  • 2022-02-07
  • 2021-11-20
  • 2022-12-23
  • 2021-12-28
猜你喜欢
  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案