Asp中使用預存程序代碼收集
來源:互聯網
上載者:User
1CREATE procedure p_splitpage
2@sql nvarchar(4000),
3@page int=1,
4@pagesize int,
5@pageCount int=0 output,
6@recordCount int=0 output
7as
8set nocount on
9declare @p1 int
10
11exec sp_cursoropen @p1 output,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount output
12set @recordCount=@pageCount
13select @pagecount=ceiling(1.0*@pagecount/@pagesize)
14,@page=(@page-1)*@pagesize+1
15exec sp_cursorfetch @p1,16,@page,@pagesize
16exec sp_cursorclose @p1
17GO
18
19
20'通過預存程序調用資料庫的資料
21'sql為查詢語句,m_pagesize為頁面顯示行,rst為記錄集,totalpages為分多少頁,num為多少條記錄,curpage為當前頁數
22Sub SelectDB(sql,m_pageSize,rst,totalpages,num,curpage)
23if curpage = "" then
24curpage = Trim(Request.Form("pageno"))
25if curpage = "" then
26curpage = Trim(Request.QueryString("pageno"))
27end if
28if curpage = "" then
29curpage = 1
30end if
31end if
32
33Set cmd = Server.CreateObject("ADODB.Command")
34cmd.ActiveConnection = conn
35cmd.CommandType = adCmdStoredProc
36cmd.CommandText = "p_SplitPage"
37
38cmd.Parameters.Append cmd.CreateParameter("@sql", adVarWChar, adParamInput, 4000, sql)
39cmd.Parameters.Append cmd.CreateParameter("@page", adInteger, adParamInput, 4, curpage)
40cmd.Parameters.Append cmd.CreateParameter("@pageSize", adInteger, adParamInput, 4, m_pageSize)
41cmd.Parameters.Append cmd.CreateParameter("@pageCount", adInteger, adParamOutput, 4, totalpages)
42cmd.Parameters.Append cmd.CreateParameter("@recordCount", adInteger, adParamOutput, 4, num)
43
44'Response.Write sql&"<br/>"
45set rst = cmd.Execute
46set rst = rst.NextRecordSet
47
48totalpages = cmd.Parameters("@pageCount").value
49num = cmd.Parameters("@recordCount").value
50
51if totalpages = 0 then totalpages = 1
52End Sub
53