以下是引用片段:
Private Function GetSqlStr(iChannelID, arrClassID, IncludeChild, iSpecialID, IsHot, IsElite, Author, DateNum, OrderType, ShowClassName, IsPicUrl) Dim strSql, IDOrder iSpecialID = PE_CLng(iSpecialID) If iSpecialID > 0 Then strSql = strSql %26amp; " from PE_InfoS I inner join (PE_Article A left join PE_Class C on A.ClassID=C.ClassID) on I.ItemID=A.ArticleID" Else strSql = strSql %26amp; " from PE_Article A left join PE_Class C on A.ClassID=C.ClassID" End If strSql = strSql %26amp; " where A.Deleted=" %26amp; PE_False %26amp; " and A.Status=3 and A.ReceiveType=0" If iChannelID > 0 Then strSql = strSql %26amp; " and A.ChannelID=" %26amp; iChannelID End If If arrClassID <> "0" Then If InStr(arrClassID, ",") = 0 And IncludeChild = True Then Dim trs Set trs = Conn.Execute("select arrChildID from PE_Class where ClassID=" %26amp; PE_CLng(arrClassID) %26amp; "") If trs.BOF And trs.EOF Then arrClassID = "0" Else If IsNull(trs(0)) Or Trim(trs(0)) = "" Then arrClassID = "0" Else arrClassID = trs(0) End If End If Set trs = Nothing End If If InStr(arrClassID, ",") > 0 Then strSql = strSql %26amp; " and A.ClassID in (" %26amp; FilterArrNull(arrClassID, ",") %26amp; ")" Else If PE_CLng(arrClassID) > 0 Then strSql = strSql %26amp; " and A.ClassID=" %26amp; PE_CLng(arrClassID) End If End If If iSpecialID > 0 Then strSql = strSql %26amp; " and I.ModuleType=1 and I.SpecialID=" %26amp; iSpecialID End If If IsHot = True Then strSql = strSql %26amp; " and A.Hits>=" %26amp; HitsOfHot End If If IsElite = True Then strSql = strSql %26amp; " and A.Elite=" %26amp; PE_True End If If Trim(Author) <> "" Then strSql = strSql %26amp; " and A.Author='" %26amp; Author %26amp; "'" End If If DateNum > 0 Then strSql = strSql %26amp; " and DateDiff(" %26amp; PE_DatePart_D %26amp; ",A.UpdateTime," %26amp; PE_Now %26amp; ")<" %26amp; DateNum End If
If IsPicUrl = True Then strSql = strSql %26amp; " and A.DefaultPicUrl<>'' " End If
strSql = strSql %26amp; " order by A.OnTop " %26amp; PE_OrderType %26amp; "," Select Case PE_CLng(OrderType) Case 1, 2 Case 3 strSql = strSql %26amp; "A.UpdateTime desc," Case 4 strSql = strSql %26amp; "A.UpdateTime asc," Case 5 strSql = strSql %26amp; "A.Hits desc," Case 6 strSql = strSql %26amp; "A.Hits asc," Case 7 strSql = strSql %26amp; "A.CommentCount desc," Case 8 strSql = strSql %26amp; "A.CommentCount asc," Case Else
End Select If OrderType = 2 Then IDOrder = "asc" Else IDOrder = "desc" End If If iSpecialID > 0 Then strSql = strSql %26amp; "I.InfoID " %26amp; IDOrder Else strSql = strSql %26amp; "A.ArticleID " %26amp; IDOrder End If GetSqlStr = strSql End Function |