📄 cls_dboperation.asp
字号:
<%
'====================================================================
'= Team Elite - Elite Article System
'= Copyright (c) 2005 Eason Chan All Rights Reserved.
'=-------------------------------------------------------------------
'= 文件名称:cls_DBOperation.asp
'= 摘 要:数据库操作类文件
'=-------------------------------------------------------------------
'= 最后更新:eason007
'= 最后日期:2005-07-27
'====================================================================
Class cls_DBOperation
Private Rs
Private SQL
Public TrueValue
Public ExecuteTotal,QueryTotal
Private Sub Class_Initialize()
Set Rs=Server.CreateObject("adodb.recordSet")
ExecuteTotal=0
QueryTotal=0
Select Case iDataBaseType
Case 0
TrueValue="-1"
Case 1,2
TrueValue="1"
End Select
End Sub
Public Sub Close_DB()
Set Rs=Nothing
End Sub
Public Function Get_Nav_List(iStepNum,sCode)
Dim i
SQL="Select [Id],Title From [NB_Column] Where 1=2"
For i=1 To iStepNum
SQL=SQL&" Or Code='"&Left(sCode,i*4)&"'"
Next
SQL=SQL&" Order By Code"
Get_Nav_List=DB_Query(SQL)
End Function
Public Function Get_InsideLink_ByColumn(ColumnId)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_InsideLink "&ColumnId
Case 1
SQL="SELECT Word, Link"
SQL=SQL&" FROM NB_Link"
SQL=SQL&" WHERE (ColumnId=0 Or ColumnId="&ColumnId&")"
Case 2
SQL="Exec sp_EliteArticle_InsideLink_ByColumn_Select "&ColumnId
End Select
Get_InsideLink_ByColumn=DB_Query(SQL)
End Function
Public Function Get_Group_Setting(iGroupId)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_GroupSetting "&iGroupId
Case 1
SQL="SELECT GroupName, IsLogin, Setting"
SQL=SQL&" FROM NB_UserGroup"
SQL=SQL&" WHERE [Id]="&iGroupId
Case 2
SQL="Exec sp_EliteArticle_UserGroup_Info_Select "&iGroupId
End Select
Get_Group_Setting=DB_Query(SQL)
End Function
Public Function Get_Ip_LockInfo(sIp)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_Chk_LockIp '"&sIp&"'"
Case 1
SQL="SELECT TOP 1 [Id]"
SQL=SQL&" FROM NB_Ip"
SQL=SQL&" WHERE Head_Ip<='"&sIp&"' And Foot_Ip>='"&sIp&"' And DateDiff(d,GetDate(),OverTime)>=0"
Case 2
SQL="Exec sp_EliteArticle_Ip_ChkLock_Select '"&sIp&"'"
End Select
Get_Ip_LockInfo=DB_Query(SQL)
End Function
Public Function Get_DisColumn(iTop,sWay)
SQL="Select Top "&iTop&" [Id],Title,CountNum,(Select Count([Id]) From [NB_Content]"
If iDataBaseType=0 Then
SQL=SQL&" Where ColumnId=[NB_Column].Id And DateDiff('d',Now(),AddDate)=0)"
Else
SQL=SQL&" Where ColumnId=[NB_Column].Id And DateDiff(d,GetDate(),AddDate)=0)"
End If
SQL=SQL&" From [NB_Column]"
SQL=SQL&" Where Type=1"
If sWay="0" Then
SQL=SQL&" Order By [Id] Desc"
Else
SQL=SQL&" Order By ViewNum Desc"
End If
Get_DisColumn=DB_Query(SQL)
End Function
Public Function Get_AdSense(iAdSense)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_Manager_AdSenseInfo "&iAdSense
Case 1
SQL="SELECT Title, Content"
SQL=SQL&" FROM [NB_AdSense]"
SQL=SQL&" WHERE [Id]="&iAdSense
Case 2
SQL="Exec sp_EliteArticle_AdSense_Info_Select "&iAdSense
End Select
Get_AdSense=DB_Query(SQL)
End Function
Public Function Get_Template_Info(iTemplateId,sTempateField)
SQL="SELECT TOP 1 Temp_Name,Page_Css,Page_Head,Page_Foot,Page_"&sTempateField
SQL=SQL&" FROM NB_Template"
SQL=SQL&" WHERE [Id]="&iTemplateId&" Or IsDefault=1"
SQL=SQL&" ORDER BY IsDefault"
Get_Template_Info=DB_Query(SQL)
End Function
Public Function Get_System_Info()
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_Load_Config"
Case 1
SQL="SELECT TOP 1 ColumnNum, TopicNum, MangerTopicNum, RegUser, ReviewNum, Info, Source, BadWord"
SQL=SQL&" FROM NB_System"
Case 2
SQL="Exec sp_EliteArticle_System_LoadConfig_Select"
End Select
Get_System_Info=DB_Query(SQL)
End Function
Public Sub Set_Vote_SaveVoted(iVoteId,sVoteNum)
Select Case iDataBaseType
Case 0
SQL="Exec vi_UpDate_SaveVote '"&sVoteNum&"',"&iVoteId
Case 1
SQL="UPDATE NB_VOTE SET VoteNum = '"&sVoteNum&"', VoteTotal = VoteTotal+1"
SQL=SQL&" WHERE [Id]="&iVoteId
Case 2
SQL="Exec sp_EliteArticle_Vote_SaveVoted_UpDate"
SQL=SQL&" @Vote_Num='"&sVoteNum&"'"
SQL=SQL&",@Vote_Id="&iVoteId
End Select
DB_Execute SQL
End Sub
Public Function Get_Vote_Info(iVoteId)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_VoteInfo "&iVoteId
Case 1
SQL="SELECT Id, TITLE, VOTETEXT, VoteNum, TYPE, LOCK"
SQL=SQL&" FROM NB_VOTE"
SQL=SQL&" WHERE Id="&iVoteId
Case 2
SQL="Exec sp_EliteArticle_Vote_Info_Select"
SQL=SQL&" @Vote_Id="&iVoteId
End Select
Get_Vote_Info=DB_Query(SQL)
End Function
Public Function Get_Rss_List(iTopNum,iTypes,sAuthorName,iColumnId)
SQL="Select Top "&iTopNum&" Id,Title,AddDate,Summary From [NB_Content] Where IsPass="&TrueValue&" And IsDel=0"
Select Case iTypes
Case "2"
SQL=SQL&" And IsTop="&TrueValue
Case "3"
SQL=SQL&" And IsImg="&TrueValue
Case "4"
SQL=SQL&" And Author Like '"&sAuthorName&"'"
End Select
If iColumnId<>"0" And IsNumeric(iColumnId) And CLng(iColumnId)>0 Then SQL=SQL&" And ColumnId="&iColumnId
SQL=SQL&" Order By TrueTime Desc"
Get_Rss_List=DB_Query(SQL)
End Function
Private Function Get_Column_ChkIsReview(iArticleId)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_ColumnIsReview "&iArticleId
Case 1
SQL="SELECT IsReview"
SQL=SQL&" FROM NB_Content AS a LEFT JOIN NB_Column AS b ON a.ColumnId=b.Id"
SQL=SQL&" WHERE a.Id="&iArticleId
Case 2
SQL="Exec sp_EliteArticle_Column_IsReviewByArticleId_Select"
SQL=SQL&" @Article_Id="&iArticleId
End Select
Get_Column_ChkIsReview=DB_Query(SQL)
End Function
Public Function Set_Review_Insert(iArticleId,sRUserId,sRUserName,sRContent,sIp,iRState)
Dim Temp
Dim Flag
Flag=0
Temp=Get_Column_ChkIsReview(iArticleId)
If IsArray(Temp) Then
If Temp(0,0)=0 Then
ErrMsg="管理员已设置该栏目下的文章不允许发表评论,请稍后重试。"
Flag=1
Else
rs.Open "NB_Review",Conn,2,2
rs.AddNew
rs("ArticleId")=iArticleId
rs("UserId")=sRUserId
rs("UserName")=sRUserName
rs("Content")=sRContent
rs("IP")=sIp
rs("IsPass")=iRState
rs.update
Rs.Close:Set Rs=Nothing
If iDataBaseType<>2 Then
SQL="Update [NB_Content] Set CommentNum=CommentNum+1"
If iRState=1 Then
Set_System_ReviewTotal 1
SQL=SQL&",LastComment='"&Left(sRContent,25)&"'"
End If
SQL=SQL&" Where [Id]="&iArticleId
DB_Execute SQL
End If
Session("lastpost")=Now()
ErrMsg="您已经成功发布您的评论!"
Flag=0
End If
Else
ErrMsg="指定错误的参数。"
Flag=1
End If
Set_Review_Insert=Flag
End Function
Public Function Get_Review_List(iArticleId)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_ReviewList "&iArticleId
Case 1
SQL="SELECT Case UserId When 0 Then '游客' Else '[会员]'+UserName End As [UserName], AddDate, Content"
SQL=SQL&" FROM NB_Review"
SQL=SQL&" WHERE ArticleId="&iArticleId&" And IsPass=1"
SQL=SQL&" ORDER BY [Id] DESC"
Case 2
SQL="Exec sp_EliteArticle_Review_ListByArticleId_Select"
SQL=SQL&" @Article_Id="&iArticleId
End Select
Get_Review_List=DB_Query(SQL)
End Function
Public Function Get_Review_NewList(iTop,iContentLen)
Select Case iDataBaseType
Case 0
SQL="Select Top "&iTop&" ArticleId,Left(Content,"&iContentLen&"),IIF(UserId=0,'游客','[会员]'+UserName),AddDate"
SQL=SQL&" From [NB_Review] Where IsPass=-1 Order By Id Desc"
Case 1,2
SQL="Select Top "&iTop&" ArticleId,Left(Content,"&iContentLen&"),Case UserId When 0 Then '游客' Else '[会员]'+UserName End As [UserName],AddDate"
SQL=SQL&" From [NB_Review]"
SQL=SQL&" Where IsPass=1"
SQL=SQL&" Order By Id Desc"
End Select
Get_Review_NewList=DB_Query(SQL)
End Function
'*******************************************************************
'img article list
Public Function Get_Article_ImgStat()
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_ImgTotal"
Case 1
SQL="SELECT Count(Id)"
SQL=SQL&" FROM NB_Content"
SQL=SQL&" WHERE IsImg=1 And IsPass=1 And IsDel=0"
Case 2
SQL="Exec sp_EliteArticle_EspecialArticle_Total_Select"
SQL=SQL&" @ArticleType=1"
End Select
Get_Article_ImgStat=DB_Query(SQL)
End Function
Public Function Get_Article_ImgList(iPageNum,iPageSize)
Dim Temp
Select Case iDataBaseType
Case 0
SQL="Exec vi_Select_ImgList"
Temp=DB_CutPageQuery(SQL,iPageNum,iPageSize)
Case 1
SQL="SELECT [Id], Title, Img, TColor, Summary, AddDate"
SQL=SQL&" FROM NB_Content"
SQL=SQL&" WHERE IsImg=1 And IsPass=1 And IsDel=0"
SQL=SQL&" ORDER BY TrueTime DESC"
Temp=DB_CutPageQuery(SQL,iPageNum,iPageSize)
Case 2
SQL="Exec sp_EliteArticle_EspecialArticle_List_Select"
SQL=SQL&" @ArticleType=1"
SQL=SQL&",@List_PageNum="&iPageNum
SQL=SQL&",@List_PageSize="&iPageSize
Temp=DB_Query(SQL)
End Select
Get_Article_ImgList=Temp
End Function
'-------------------------------------------------------------------
'*******************************************************************
'article
Public Sub Set_Article_Del(iArticle_Id)
Select Case iDataBaseType
Case 0
SQL="Exec vi_Delete_Manager_Article "&iArticle_Id
Case 1
SQL="DELETE"
SQL=SQL&" FROM NB_Content"
SQL=SQL&" WHERE Id="&iArticle_Id
Case 2
SQL="Exec sp_EliteArticle_Article_Delete"
SQL=SQL&" @Article_Id="&iArticle_Id
End Select
DB_Execute SQL
End Sub
Public Function Set_Article_Insert(iArticleId,vArticleInfo)
On Error Resume Next
Dim Flag
Flag=0
If iArticleId<>0 Then
Sql="Select * From [NB_Content] Where [Id]="&iArticleId
rs.Open Sql,Conn,2,2
Else
rs.Open "NB_Content",Conn,2,2
rs.AddNew
End If
rs("title")=vArticleInfo(0)
rs("author")=vArticleInfo(14)
rs("authorid")=vArticleInfo(13)
rs("Content")=vArticleInfo(1)
rs("KeyWord")=vArticleInfo(2)
rs("ColumnId")=vArticleInfo(3)
rs("ColumnName")=vArticleInfo(4)
rs("ColumnCode")=vArticleInfo(5)
rs("byte")=vArticleInfo(11)
rs("isimg")=vArticleInfo(7)
rs("img")=vArticleInfo(6)
rs("IsDis")=vArticleInfo(17)
rs("CutArticle")=vArticleInfo(15)
If PostId=0 Then
rs("AddDate")=vArticleInfo(16)
rs("TrueTime")=vArticleInfo(18)
End If
rs("Source")=vArticleInfo(8)
rs("SourceUrl")=vArticleInfo(9)
rs("Summary")=vArticleInfo(10)
rs("IsPass")=vArticleInfo(12)
rs.update
Rs.Close
If iArticleId=0 Then
If vArticleInfo(12)=0 Then
Set_System_ManagerTopicTotal 1
Set_Column_ManagerTopicTotal vArticleInfo(3),1
Else
Set_System_TopicTotal 1
Set_Column_TopicTotal vArticleInfo(3),1
End If
End If
If Err Then
Flag=-1
ElseIf vArticleInfo(12)=0 Then
Flag=1
Else
Flag=0
End If
If Flag<>-1 Then Set_MemberAppearTotal vArticleInfo(13)
Set_Article_Insert=Flag
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -