⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cls_dboperation.asp

📁 改进及新特性: 1、调整模版编辑时的流程及提示语言 2、新增sitemaps生成功能 3、优化评论页面的显示格式 BUG修正: 1、getarticlelist标签对于现有参数提示错误
💻 ASP
📖 第 1 页 / 共 4 页
字号:
<%
'====================================================================
'= 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 + -