日期:2011-12-06 浏览次数:21063 次
 以下是asp代码(demo.asp): 
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> 
<!--#include file="adovbs.inc"--> 
<% 
’通用的ASP读取MSSQL存储过程代码示例 
’返回临时表记录集 
’带传递参数 
dim conn,connstr,cmd,rs 
connstr = "Provider=SQLOLEDB;server=服务器计算机名或IP地址;uid=用户名;pwd=密码;DATABASE=数据库名称;" ’连接数据库字符串 
Set conn = Server.CreateObject("ADODB.Connection") ’创建conn对象 
conn.open connstr ’打开数据库 
Set Cmd=server.CreateObject("Adodb.Command") ’创建command对象 
Cmd.ActiveConnection=conn 
Cmd.CommandText="存储过程名" ’调用存储过程名称 
Cmd.CommandType=4 
cmd.prepared=true 
Cmd.Parameters.Append Cmd.CreateParameter("fyear",adInteger,1,2,"2007")  ’示例传递给存储过程一个年份,类型是integer,对应存储过程中的@fyear变量 
Cmd.Parameters.Append Cmd.CreateParameter("myname",adVarChar,adParamInput,50,"爱易学习网") ’示例传递给存储过程一个中文字符,类型是varchar,长度为50,对应存储过程中的@myname变量 
set rs=Cmd.execute 
’<!--循环显示返回记录集全部记录--> 
while not rs.eof 
response.write "<div>"&rs(0)&"|"&rs(1)&"|"&rs(2)&"</div>" 
rs.movenext 
wend 
’<!--循环显示返回记录集全部记录--> 
’<!--释放对象--> 
rs.close 
set rs = nothing 
conn.close 
set conn = nothing 
set cmd = nothing 
’<!--释放对象--> 
%>
 以下是存储过程代码: 
SET QUOTED_IDENTIFIER OFF  
GO 
SET ANSI_NULLS OFF  
GO 
ALTER PROCEDURE 存储过程名  
( 
@fyear int, 
@myname varchar(50) 
) 
AS 
set nocount on 
begin 
--创建临时表 
create table #tmp_demo(tmp_fyear int,tmp_name varchar(50),tmp_info varchar(2000),tmp_sum int,tmp_int int) 
insert into #tmp_demo select fyear,fname,finfo,sum(fsum), 
isnull((select fint from tb2 where fid=tb1.fid and fname=tb1.fname),0)  
from tb1 
group by fname order by fname 
--示例判断并返回记录 
if (@fyear<>’’ and @myname=’’) 
select * from #tmp_demo where tmp_fyear = @fyear order by tmp_sum desc 
else if (@fyear<>’’ and @myname<>’’) 
select * from #tmp_demo where tmp_fyear = @fyear and tmp_name = @myname order by tmp_sum desc 
else 
select * from #tmp_demo order by tmp_sum desc 
end 
GO 
SET QUOTED_IDENTIFIER OFF  
GO 
SET ANSI_NULLS ON  
GO
 以下adovbs.inc代码: 
<% 
’-----------