asp调用sql server带参数的分页存储过程
ASP
2025-01-18 11:34
63
0
<%Response.ContentType = "text/html; charset=utf-8"%>
<%
create PROC fenyecunchu
@Page INT=1, '请求的页数(第几页)
@RowNum INT=5 '请求的每页显示数量
AS
BEGIN
SELECT * FROM
(Select *,ROW_NUMBER() OVER(ORDER BY ID) AS num FROM shi.dbo.News) a
WHERE a.num BETWEEN(@Page-1)*@RowNum+1 AND (@Page)*@RowNum
END
' 创建连接字符串
Const strConnectionString = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=ceshi;User ID=sa;Password=123456;"
' 创建ADODB.Connection对象
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
' 打开连接
objConn.Open strConnectionString
' 创建ADODB.Command对象
Dim objCmd
Set objCmd = Server.CreateObject("ADODB.Command")
' 设置Command对象的属性
With objCmd
.ActiveConnection = objConn ' 关联到连接对象
'.CommandType = adCmdStoredProc ' 指定命令类型为存储过程
.CommandType = 4 ' 指定命令类型为存储过程
.CommandText = "fenyecunchu" ' 设置存储过程名称
' 添加参数(如果有)
'.Parameters.Append .CreateParameter("@Count", adVarChar, adParamInput, 50, "参数值")
.Parameters.Append .CreateParameter("@Page", 3, 1, 50, 2)
.Parameters.Append .CreateParameter("@RowNum", 3, 1, 50, 10)
.Prepared = true '要求将SQL命令先预编译
End With
response.Write(objCmd.Parameters(1))
第1个方法读取数据:
Dim rs
Set rs = objCmd.Execute
Do While Not rs.EOF
response.Write(rs("Title"))
response.Write("<br/>")
rs.MoveNext
Loop
第2个方法读取数据:
Set rs= Server.CreateObject("ADODB.Recordset") '建立记录集对象
rs.CursorLocation = 3
rs.Open objCmd
Do While Not rs.EOF
response.Write(rs("Title"))
rs.MoveNext
Loop
' 清理对象
objCmd.ActiveConnection = Nothing
Set objCmd = Nothing
objConn.Close
Set objConn = Nothing
%>