ASP构造大数据量的分页SQL语句

发表于:2007-06-30来源:作者:点击数: 标签:
1%@Language=" VB Script"Codepage="936"% 2% 3@#分页 sql 语句生成代码 4FunctionGetPageSql(TblName,FldName,PageSize,PageIndex,OrderType,StrWhere) 5DimStrTemp,StrSql,StrOrder 6@#根据排序方式生成相关代码 7IfOrderType=0Then 8StrTemp="(SelectMax(
 1<%@Language = "VBScript" Codepage = "936"%>
 2<%
 3@#分页sql语句生成代码
 4Function GetPageSql(TblName,FldName,PageSize,PageIndex,OrderType,StrWhere)
 5    Dim StrTemp,StrSql,StrOrder
 6    @#根据排序方式生成相关代码
 7    If OrderType = 0 Then
 8        StrTemp = "> (Select Max([" & FldName & "])"
 9        StrOrder = " Order By [" & FldName & "] Asc"
10    Else
11        StrTemp = "< (Select Min([" & FldName & "])"
12        StrOrder = " Order By [" & FldName & "] Desc"
13    End If
14    
15    @#若是第1页则无须复杂的语句
16    If PageIndex = 1 Then
17        StrTemp = ""
18        If StrWhere <> "" Then
19            Strtmp = " Where " & StrWhere
20        End If
21        StrSql = "Select Top " & PageSize & " * From [" & TblName & "]" & Strtmp & StrOrder
22    Else        @#若不是第1页,构造sql语句
23        StrSql = "Select Top " & PageSize & " * From [" & TblName & "] Where [" & FldName & "]" & StrTemp & _
24        " From (Select Top " & (PageIndex-1) * PageSize & " [" & FldName & "] From [" & TblName & "]" 
25        If StrWhere <> "" Then
26            StrSql = StrSql & " Where " & StrWhere
27        End If
28        StrSql = StrSql & StrOrder & ") As Tbltemp)"
29        If StrWhere <> "" Then
30            StrSql = StrSql & " And " & StrWhere
31        End If
32        StrSql = StrSql & StrOrder
33    End If
34    GetPageSql = StrSql        @#返回sql语句
35End Function
36Response.Write(GetPageSql("Message","MessageID",10,1,0,""))
37%>

原文转自:http://www.ltesting.net