存儲過程是一個運行於SQL數據庫之中最核心的事務,它通過長駐內存的形式,進行讀取\處理\寫入最為頻繁處理的數據.
ASP雖然在微軟的ASPX的侵襲下,仍舊是中小企業繼續在用的一種網頁語言,但是當要讀取海量數據的時候,如果仍舊使用普通的SQL進行讀取運行與寫入,將導致系統資源的嚴重浪費,所以我們在ASP中使用存儲過程,以提高數據的存取速度,同時通過SQL核心的獲取數據的方法,可以有效的減少垃圾數據(不被立即使用,而且也不備較短的時間裡被使用的數據)操作.
在ASP中使用存儲過程也是相當的容易,例如以下一個通過SQL存儲過程進行分頁的方法:
存儲過程:
CREATE procedure p_splitpage
@sql nvarchar(4000), --要執行的sql語句
@page int=1, --要顯示的頁碼
@pageSize int, --每頁的大小
@pageCount int=0 out, --總頁數
@recordCount int=0 out --總記錄數
as
set nocount on
declare @p1 int
exec sp_cursoropen @p1 output,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount output
set @recordCount = @pageCount
select @pagecount=ceiling(1.0*@pagecount/@pagesize)
,@page=(@page-1)*@pagesize+1
exec sp_cursorfetch @p1,16,@page,@pagesize
exec sp_cursorclose @p1
GO
ASP頁面的內容
sql = "Select id, c_s_name from tabNews where deleted<>1 Order By id Desc"
page = cint(page_get)
if page_post<>""then
page = cint(page_post)
end if
if not page > 0 then
page = 1
end if
pagesize=20’每頁的條數
set cmd = server.CreateObject("adodb.command")
cmd.ActiveConnection = conn
cmd.CommandType = 4
cmd.CommandText = "p_SplitPage"
cmd.Parameters.Append cmd.CreateParameter("@sql",8,1, 4000, sql)
cmd.Parameters.Append cmd.CreateParameter("@page",4,1, 4, page)
cmd.Parameters.Append cmd.CreateParameter("@pageSize",4,1, 4, pageSize)
cmd.Parameters.Append cmd.CreateParameter("@pageCount",4,2, 4, pageCount)
cmd.Parameters.Append cmd.CreateParameter("@recordCount",4,2, 4,