发布:2015/1/5 17:08:57作者:管理员 来源:本站 浏览次数:2094
前些天,网页设计爱好者web团队(.com)在开发一个系统平台时,需要通过存储过程调用多个表的几个字段,合并到一个临时表中,并进行排序返回给asp调用。
下面,我把经验分享出来:
1、存储过程部分:
以下是存储过程部分: create procedure [dbo].[] @snum int, @sorder varchar(20) as set nocount on create table #btable (id int,channelid int,classid int,title varchar(250),imageurl varchar(250),htmlfiledate varchar(250),addtime datetime) execute(’insert into #btable select top ’+@snum+’ id,fid,cid,title,imageurl,myurl,writetime from ali_tb1 where isbest=1’) execute(’insert into #btable select top ’+@snum+’ id,fid,cid,topic,photourl,siteurl,addtime from ali_tb2 where isbest=1’) execute(’select * from #btable order by ’+@sorder+’ desc’) go |
这个存储过程的作用是建立一个名为的存储过程,并带有两个参数snum及sorder,作用是可以灵活的通过参数控制显示返回的记录数和排序方法。
在mssql查询分析器里,我们可以通过这样的形式执行存储过程来返回两个表各5条记录(一共10条):
exec 5,’addtime’ |
下面,我们说说在asp中调用的方法(conn为数据库连接,请检查你的环境,相关数据库连接代码这里不列出)。
以下是引用片段: dim cmd set rs =server.createobject("adodb.recordset") set cmd = server.createobject("adodb.command") set cmd.activeconnection=conn cmd.commandtext="" cmd.parameters.append cmd.createparameter("@snum",3,1,4,50) cmd.parameters.append cmd.createparameter("@sorder",200,1,20,"addtime") cmd.commandtype=4 set rs=cmd.execute set cmd = nothing if not rs.eof then do while not rs.eof response.write rs(0) & "<br>" rs.movenext loop else response.write "无记录" end if set rs=nothing |
通过以上方法,我们就可以实现asp调用带参数的mssql存储过程,并返回临时表记录集。
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4