求高手帮我把这个转成用存储过程的!
我刚刚开始学存储过程,这段数据库处理很烦琐,想转成存储过程,但又不知道怎么写,求比较高效的方法!
ASP代码如下:
Dim rsbclass,sqlbclass
Set rsbclass=Server.CreateObject("ADODB.Recordset")
Select Case topvalue
Case 1
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by Hit_point desc"
Case 2
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by list_mhit desc"
Case 3
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by list_whit desc"
Case 4
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by Jian_point desc"
Case 5
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by list_mjian desc"
Case 6
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by list_wjian desc"
Case 7
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by Cang_point desc"
Case 8
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by WordCount desc"
Case 9
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 and IsJian=1 order by Hit_point desc"
Case 10
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by id desc"
Case 11
sqlbclass="select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by GXtime desc"
End Select
rsbclass.open sqlbclass,conn,1,1,&H0001
If rsbclass.eof and rsbclass.bof Then
response.write "<tr bgColor=#ffffff height=24><td align=center>暂无任何作品</td></tr>"
Else
Dim i,n
i=1
rsbclass.PageSize=30
n=rsbclass.PageSize*(PageID-1)+1
rsbclass.AbsolutePage=PageID
Dim Pages
Pages=rsbclass.PageCount
If CInt(PageID)>Pages Then PageID=Pages
Do While not rsbclass.eof and i<=rsbclass.PageSize
Response.Write("<tr bgColor='#ffffff' height=24>" & _
"<td class='xt' width=30 align='center'>"&n&"</td>" & _
"<td class='xt' align='center' width=94>")
Dim Crs,Csql
set Crs=server.CreateObject("ADODB.recordset")
Csql="select id,ClassName from Class where id="&rsbclass("ClassID")
Crs.open Csql,conn,0,1,&H0001
If Crs.eof and Crs.bof Then
response.write "被删除"
Else
Response.Write("<a href='BookClassList.asp?id="&Crs("id")&"'>"&Crs("ClassName")&"</a>")
End If
Crs.close
set Crs=nothing
Response.Write("</td><td class='xt' align='center' width=185><a target='_blank' href='BookDetail.asp?BookID="&rsbclass("id")&"'>"&rsbclass("Book_Name")&"</a></td>" & _
"<td class='xt' align='center' width='250'>")
Dim rscclass,sqlcclass
Set rscclass=server.createobject("adodb.recordset")
sqlcclass="select top 1 id,TomeName from [list_Tome] where BookID="&rsbclass("id")&" order by id desc"
rscclass.open sqlcclass,conn,0,1,&H0001
If rscclass.eof and rscclass.bof Then
response.write "暂无更新"
Else
Dim id,rsvclass,sqlvclass
id=rscclass("id")
set rsvclass=server.createobject("adodb.recordset")
sqlvclass="select id,WordCount,ViewTitle,addtime,Islock from [list_view] where TomeID="&id&" order by addtime desc"
rsvclass.open sqlvclass,conn,0,1,&H0001
If rsvclass.eof and rsvclass.bof Then
response.write "暂无更新"
Else
Response.Write("<a target='_blank' href='BookViewRead.asp?BookID="&rsbclass("id")&"&ViewID="&rsvclass("id")&"' title='更新日期:"&rsbclass("GXtime")&"' >"&rscclass("TomeName")&" "&rsvclass("ViewTitle")&"</a>")
End If
End If
rscclass.close
rsvclass.close
Response.Write("</td><td class='xt' align='center' width='91'>"&rsbclass("WordCount")&" K</td>" & _
"<td class='xt' align='center' width='131'>"&rsbclass("GXtime")&"</td>" & _
"<td class='xt' align='center' width='90'>" & _
"<a href='Search.asp?au_name="&rsbclass("Editer")&"' target='_blank'>"&gotTopic(rsbclass("Editer"),8)&"</a></td>" & _
"<td class='xt' align='center' width=63>")
Select Case rsbclass("IsComplete")
Case 1
Response.Write("连载中...")
Case 2
Response.Write("出版中...")
Case 3
Response.Write("已暂停...")
Case 4
Response.Write("已停止...")
Case 5
Response.Write("已完成...")
End Select
Response.Write("</td><tr><td colspan=8 background='images/line.gif'></td></tr>")
rsbclass.movenext
i=i+1
n=n+1
Loop
rsbclass.close
set rsbclass=nothing
set rscclass=nothing
set rsvclass=nothing
Response.Write("</table></td></tr></table>" & _
"<table border=0 width=100% align=center><tr><td align=right>第<span style='color:red'>"&PageID&"</span>页 共<span style='color:red'>"&Pages&"</span>页 ")
If CInt(PageID)>1 Then
Response.Write("<a href='TopTen.asp?topvalue="&topvalue&"'>首页</a> <a href='TopTen.asp?topvalue="&topvalue&"&PageID="&PageID-1&"'>上一页</a> ")
Else
Response.Write("首页 上一页 ")
End If
If CInt(PageID)<Pages Then
Response.Write("<a href='TopTen.asp?topvalue="&topvalue&"&PageID="&PageID+1&"'>下一页</a> <a href='TopTen.asp?topvalue="&topvalue&"&PageID="&Pages&"'>尾页</a> ")
Else
Response.Write("下一页 尾页 ")
End If
Response.Write("<select name='pageid' onchange=""location.href='TopTen.asp?topvalue="&topvalue&"&PageID='+this.value;"">")
For i=1 to Pages
Response.Write("<option ")
If i=CInt(PageID) Then
Response.Write("selected")
End If
Response.Write(" value="&i&">第"&i&"页</option>")
Next
Response.Write("</select></td>")
End If
问题点数:50、回复次数:6Top
1 楼dutguoyi(新鲜鱼排)回复于 2006-03-04 09:20:40 得分 0
有点晕,Top
2 楼huailairen(流浪猫--很想养只猫,带着它到处流浪。)回复于 2006-03-04 10:20:27 得分 0
create proc Query_info
@topvalue int
as
begin
declare @condition varchar(30)
select @condition=(case @topvalue
when 1 then 'Hit_point'
when 2 then 'list_mhit'
when 3 then 'list_whit '
when 4 then 'Jian_point'
when 5 then 'list_mjian'
when 6 then 'list_wjian'
when 7 then 'Cang_point'
when 8 then 'WordCount'
when 9 then 'WordCount'
when 10 then 'Hit_point'
when 11 then 'id'
else '')
if @condition=''
begin
raiserror 5001,'参数错误!'
return
end
exec('select top 100 id,ClassID,Book_Name,Editer,WordCount,IsComplete,GXtime from [list_book] where IsLock = 1 order by '+rtrim(@condition)+' desc' )
end
Top
3 楼ycy589(ycy589)回复于 2006-03-06 16:38:36 得分 0
不错Top
4 楼TerranC()回复于 2006-03-09 13:24:42 得分 0
还有其他方法吗?Top
5 楼TerranC()回复于 2006-03-09 13:24:49 得分 0
还有其他方法吗?Top
6 楼TerranC()回复于 2006-03-09 13:24:54 得分 0
还有其他方法吗?Top




