<%
'---------------------数据库相关函数-----------------
'****************************************************
'函数名：DBDel
'作  用：删除指定条件的数据
'****************************************************
Function DBDel(Table,WhereStr)
	Dim Sql
	Sql="Delete From "&Table&" Where "&WhereStr&""
	Conn.Execute(Sql)
End Function
'****************************************************
'函数名：DBUpdate
'作  用：修改指定条件和字段的内容
'****************************************************
Function DBUpdate(Table,UpVale,WhereStr)
	Dim Sql
	Sql="Update "&Table&" Set "&UpVale&" Where "&WhereStr&""
	Conn.Execute(Sql)
End Function
'****************************************************
'函数名：DBGetNum
'作  用：查询某字段数量 最大值或最小值
'****************************************************
Function DBGetNum(Table,FieldName,sType)
	Dim Rs,Sql
	Select Case sType
		Case 0
			Sql="Select Count("&FieldName&") From "&Table&""
		Case 1
			Sql="Select Max("&FieldName&") From "&Table&""
		Case 2
			Sql="Select Min("&FieldName&") From "&Table&""
	End Select
	Set Rs=Conn.Execute(Sql)
	If Rs.Bof And Rs.Eof Then
		DBGetNum=0
	Else
		DBGetNum=Rs(0)
	End If
	Rs.Close
	Set Rs=Nothing
End Function
'****************************************************
'函数名：DBGetNum2
'作  用：查询某字段数量 最大值或最小值 带附加条件
'****************************************************
Function DBGetNum2(Table,FieldName,WhereStr,sType)
	Dim Rs,Sql
	Select Case sType
		Case 0
			Sql="Select Count("&FieldName&") From "&Table&" "&WhereStr&""
		Case 1
			Sql="Select Max("&FieldName&") From "&Table&" "&WhereStr&""
		Case 2
			Sql="Select Min("&FieldName&") From "&Table&" "&WhereStr&""
	End Select
	Set Rs=Conn.Execute(Sql)
	If Rs.Bof And Rs.Eof Then
		DBGetNum2=0
	Else
		DBGetNum2=Rs(0)
	End If
	Rs.Close
	Set Rs=Nothing
End Function
'****************************************************
'函数名：DBExist
'作  用：查询某字段的内容是否有重复
'****************************************************
Function DBExist(Table,FieldName,WhereStr)
	Dim Rs,Sql
	Sql="Select "&FieldName&" From "&Table&" Where "&WhereStr&""
	Set Rs=Conn.Execute(Sql)
	If Rs.Bof And Rs.Eof Then
		DBExist=False
	Else
		DBExist=True
	End If
	Rs.Close
	Set Rs=Nothing
End Function
'****************************************************
'函数名：DBGetValue
'作  用：查询指定条件某字段的内容
'****************************************************
Function DBGetValue(Table,FieldName,WhereStr)
	Dim Rs,Sql
	Sql="Select "&FieldName&" From "&Table&" Where "&WhereStr&""
	Set Rs=Conn.Execute(Sql)
	If Rs.Bof And Rs.Eof Then
		DBGetValue=""
	Else
		DBGetValue=Rs(0)
	End If
	Rs.Close
	Set Rs=Nothing
End Function

'---------------------分页相关函数-------------------
'****************************************************
'函数名：GetTotalCount
'作  用：获取制定条件的数据总数
'****************************************************
Function GetTotalCount(Tag,Table,WhereStr)
	Dim Rs,Sql
	Set Rs=Server.CreateObject("Adodb.Recordset")
	Sql="Select Count("&Tag&") From "&Table&" "&WhereStr&""
	Rs.Open Sql,Conn,1,1
	GetTotalCount=Rs(0)
	Rs.Close
	Set Rs=Nothing
End Function
'****************************************************
'函数名：GetPageCount
'作  用：获取页数总数
'****************************************************
Function GetPageCount(TotalCount,PageSize)
	Dim PageCount
	PageCount=TotalCount/PageSize
	If (TotalCount Mod PageSize)=0 Then
		PageCount=Int(PageCount)
	Else
		PageCount=Int(PageCount)+1
	End If
	GetPageCount=PageCount
End Function
'****************************************************
'函数名：GetPageNow
'作  用：获取当前页数
'****************************************************
Function GetPageNow(PageCount)
	Dim Page
	Page=CheckNum(Request("Page"))
	If Page<1 Then
		Page=1
	End If
	If Page>PageCount Then
		Page=PageCount
	End If
	GetPageNow=Page
End Function
'****************************************************
'函数名：GetPrevID
'作  用：获取上一页最后一条数据的编号
'****************************************************
Function GetPrevID(Tag,Table,Page,PageSize,Order,WhereStr)
	Dim Rs,Sql
	Set Rs=Server.CreateObject("Adodb.Recordset")
	Sql="Select Min("&Tag&") From (Select Top "&(Page-1)*PageSize&" "&Tag&" From "&Table&" "&WhereStr&" Order By "&Order&" Desc) Ta"
	Rs.Open Sql,Conn,1,1
	GetPrevID=Rs(0)
	Rs.Close
	Set Rs=Nothing
End Function
'****************************************************
'函数名：GetPageSql
'作  用：获取查询的Sql语句
'****************************************************
Function GetPageSql(Tag,Table,TagStr,Order,PageSize,WhereStr,Page)
	Dim PrevID,Sql,AndStr
	AndStr=Replace(WhereStr,Left(WhereStr,6),"And ")
	If Page>1 Then
		PrevID=GetPrevID(Tag,Table,Page,PageSize,Order,WhereStr)
		Sql="Select Top "&PageSize&" "&TagStr&" From "&Table&" Where "&Tag&"<"&PrevID&" "&AndStr&" Order By "&Order&" Desc"
	Else
		Sql="Select Top "&PageSize&" "&TagStr&" From "&Table&" "&WhereStr&" Order By "&Order&" Desc"
	End If
	GetPageSql=Sql
End Function
'****************************************************
'函数名：PageShow
'作  用：显示分页信息
'****************************************************
Function PageShow(TotalCount,PageSize,Page,PageCount,Url,LinkNum)
	If Url<>"?" Then
		If InStr(Url,"?")=0 Then
			Url=Url&"?"
		Else
			Url=Url&"&"
		End If
	End If
	Rw ("<div id=""pagelist"">")&vbcrlf
	Rw ("共"&TotalCount&"条 每页"&PageSize&"条 "&Page&"/"&PageCount&" ")
	If Page>1 Then
		Rw ("<a href="&Url&"Page=1 title='第一页'><<</a>")&vbcrlf
		Rw ("<a href="&Url&"Page="&Page-1&" title='上一页'><</a>")&vbcrlf
	End If
	Dim I,PageStart,PageEnd
	If Page<=LinkNum Then
		PageStart=1
		PageEnd=LinkNum*2+1
	Else
		PageStart=Page-LinkNum
		PageEnd=Page+LinkNum
	End If
	For I=PageStart To PageEnd
		If I>0 And I<=PageCount Then
			If I<>Page Then
				Rw ("<a href="&Url&"Page="&I&" class='off' title='第"&I&"页'>"&I&"</a>")&vbcrlf
			Else
				Rw ("<a href="&Url&"Page="&I&" class='on' title='第"&I&"页'>"&I&"</a>")&vbcrlf
			End If
		End If
	Next
	If Page<PageCount Then
		Rw ("<a href="&Url&"Page="&Page+1&" title='下一页'>></a>")&vbcrlf
		Rw ("<a href="&Url&"Page="&PageCount&" title='最后一页'>>></a>")&vbcrlf
	End If
	Rw ("</div>")&vbcrlf
End Function
%>