<%@language=vbscript codepage=936 %>
<%
'option explicit
response.buffer = True
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
dim dns
dns="../"
%>
<!--#Include file="../Common/Inc_DatConn.asp"-->
<!--#Include file="Common/Inc_Config.asp"-->
<!--#Include file="Common/Inc_Function.asp"-->
<!--#Include file="fy_admin_check.asp"-->
<%
if Session("intUserLevel") < 3 then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>错误：权限不足！</li>"
Call Admin_ShowErr(ErrMsg)
end if
dbpath=gqwebdir&bbdbpath&"/"&bbdbname
dim Action,DataBackPath
DataBackPath="databaseback"   '备份目录
Action=Trim(request("Action"))
dim ObjInstalled
ObjInstalled=IsObjInstalled("Scripting.FileSystemObject")
%>
<html>
<head>
<title>数据库管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" type="text/css" href="images/Admin_Style.Css">
<script src="../common/Admin.js" type="text/javascript"></script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" class="border">
  <tr class="title"> 
    <td height="22" colspan="2" align="center"><strong>数 据 库 管 理</strong></td>
  </tr>
  <tr class="tdbg"> 
    <td width="70" height="30"><strong>管理导航：</strong></td>
    <td height="30"><a href="Admin_Data.asp?Action=Backup">备份数据库</a> | <a href="Admin_Data.asp?Action=Restore">恢复数据库</a> 
      | <a href="Admin_Data.asp?Action=Compact">压缩数据库</a> 
      | <a href="Admin_Data.asp?Action=ServerInfo">服务器信息</a> 
      | <a href="Admin_Data.asp?Action=SpaceSize">系统空间占用</a></td>
  </tr>
</table>
<%
Select Case Action
Case "Backup"
	call ShowBackup()
Case "BackupData"
	call ShowBackup()
Case "Compact"
	call ShowCompact()
Case "CompactData"
	call ShowCompact()
Case "Restore"
	call ShowRestore()
Case "RestoreData"
	call ShowRestore()
Case "DelBackup"
	call ShowRestore()
Case "Init"
	call ShowInit()
Case "Clear"
	call ShowInit()
Case "SpaceSize"
	call SpaceSize()
Case "ServerInfo"
	Call ServerInfo()
Case "DoSqlMain"
	call DoSqlMain()
Case "DoSql"
	call DoSql()
Case else
	FoundErr=True
	ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
End Select
if FoundErr=True then
	Admin_ShowErr(ErrMsg)
end if

Sub ShowBackup()
if is_sqldata=1 then
	Call SQLUserReadme()
else
%>
<br>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border">
<form method="post" action="Admin_Data.asp?action=BackupData">
  <tr class="title"> 
      <td align="center" height="22" valign="middle"><b>备 份 数 据 库</b></td>
  </tr>
  <tr class="tdbg"> 
    <td height="150" align="center" valign="middle">
<%    
if Action="BackupData" then
	call backupdata()
else
%>
        <table cellpadding="3" cellspacing="1" border="0" width="100%">
          <tr> 
            <td width="200" height="33" align="right">备份目录：</td>
            <td><input type="text" size="20" name="bkfolder" value="<%=DataBackPath%>" ReadOnly></td>
            <td>如要修改备份目录，请在此文件第8行处更改。</td>
          </tr>
          <tr> 
            <td width="200" height="34" align="right">备份名称：</td>
            <td height="34"><input type=text size=20 name=bkDBname value="<%=FormatTime(Now,7)%>_Bak"></td>
            <td height="34">不用输入文件名后缀（默认为“.mdb”）。如有同名文件，将覆盖</td>
          </tr>
          <tr align="center"> 
            <td height="40" colspan="3"><input name="submit" type=submit value=" 开始备份 " <%If ObjInstalled=False Then response.Write "disabled"%>></td>
          </tr>
        </table>
<%
	If ObjInstalled=False Then
		Response.Write "<b><font color=red>你的服务器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b>"
	end if
end if
%>
    </td>
 </tr>
 </form>
</table>
<%
end if
end sub

sub ShowCompact()
if IsSqlDataBase=1 then
	Call SQLUserReadme()
else
%>
<br>
<table class="border" width="100%" border="0" align="center" cellpadding="0" cellspacing="1">
	<tr class="title"> 
		<td align="center" height="22" valign="middle"><b>数据库在线压缩</b></td>
	</tr>
	<tr class="tdbg">
		<td align="center" height="150" valign="middle"> 
<%    
if Action="CompactData" then
	call CompactData()
else
%>
      <br>
      <br>
      <br>
      压缩前，建议先备份数据库，以免发生意外错误。 <br>
      <br>
      <br>
	<form name="form1" method="post" action="Admin_Data.asp?action=CompactData">
	<input name="submit1" type=submit value=" 压缩主数据库 " <%If ObjInstalled=False Then response.Write "disabled"%>>
	</form>
        <br>
<%
	If ObjInstalled=False Then
		Response.Write "<b><font color=red>你的服务器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b>"
	end if
end if
%>
            </td>
          </tr>
        </table>
</form>
<%
end if
end sub

sub ShowRestore()
if is_sqldata=1 then
	Call SQLUserReadme()
else
%>
<br>
<table width="100%" class="border" border="0" align="center" cellpadding="0" cellspacing="1">
    <tr class="title"> 
     <td align="center" height="22" valign="middle"><b>数据库恢复</b></td>
    </tr>
    <tr class="tdbg">
       <td align="center" valign="middle"> 
        <%
if Action="RestoreData" then
	call RestoreData()
elseif Action="DelBackup" then
	Call DelBackup()
else
	Dim Fso
	Set Fso=server.createobject("Scripting.FileSystemObject")
	dim theFolder,theFile,strFileType
	if Not fso.FolderExists(Server.MapPath(DataBackPath)) then
		response.write "找不到数据库备份文件夹（"&DataBackPath&"）！"
		response.end
	end if
	Set theFolder=fso.GetFolder(Server.MapPath(DataBackPath))
	For Each theFile In theFolder.Files
	strFileType=lcase(mid(theFile.Name,instrrev(theFile.Name,".")+1))
	if strFileType="mdb" Then
	%>
	<br>
	<fieldset><legend align="center"><strong><%=theFile.Name%></strong></legend>
	<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border">
        <tr class="tdbg">
          <td align="right">文 件 名：</td>
          <td><font color=#ff6600><%=theFile.Name%></font></td>
          <td align="right">文件大小：</td>
          <td><%=round(theFile.size/1024) & " K"%></td>
          <td align="right">修改时间：</td>
          <td><%=theFile.DateLastModified%></td>
        </tr>
		<tr class="tdbg">
          <td align="right">操作选项：</td>
          <td colspan="5" valign="middle">
  			<form method="Post" action="Admin_Data.asp?action=RestoreData" onSubmit="return confirm('确定恢复数据库吗？，此操作将替换现在使用中的数据库！');">
				<input name="backpath" type="text" id="backpath" value="<%=DataBackPath%>\<%=theFile.Name%>" size=50 maxlength="200" readonly>
				<input name="submit" type="submit" value=" 恢复数据 " <%If ObjInstalled=False Then response.Write "disabled"%>>
			</form>
  			<form method="Post" action="Admin_Data.asp?action=DelBackup" onSubmit="return confirm('确定删除备份文件吗？');">
				<input name="Document" type="text" id="Document" value="<%=DataBackPath%>\<%=theFile.Name%>" size=50 maxlength="200" readonly>
				<input name="Del" type="submit" value=" 删除备份 " <%If ObjInstalled=False Then response.Write "disabled"%>>
			</form>
		</td>
        </tr>
	</table>
	</fieldset>
	<%
	end if
	Next
	If ObjInstalled=False Then
		Response.Write "<b><font color=red>你的服务器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b>"
	end if
end if
%>
            </td>
        </tr>
</table>
<%
end if
end sub

sub SpaceSize()
	on error resume next
%>
<br>
<table class="border" width="100%" border="0" align="center" cellpadding="0" cellspacing="1">
	<tr class="title"> 
		<td align="center" height="22" valign="middle"><b>系统空间占用情况</b></td>
	</tr>
	<tr class="tdbg"> 
		<td width="100%" height="25" valign="middle">
      &nbsp;系统数据占用空间：&nbsp;<img src="../images/bar/bar6.gif" width=<%=drawbar("../"&bbdbpath)%> height=10>&nbsp;<%showSpaceinfo("../"&bbdbpath)%>
		</td>
	</tr>
	<tr class="tdbg"> 
		<td width="100%" height="25" valign="middle">
      &nbsp;系统图片占用空间：&nbsp;<img src="../images/bar/bar4.gif" width=<%=drawbar("../Images")%> height=10>&nbsp;<%showSpaceinfo("../Images")%>
		</td>
	</tr>
	<tr class="tdbg"> 
		<td width="100%" height="25" valign="middle">
      &nbsp;系统占用空间总计：&nbsp;<img src="../images/bar/bar7.gif" width=500 height=10>&nbsp;<%showSpaceinfo(gqWebDir)%>
		</td>
	</tr>
</table>
<%
end sub
%>
</body>
</html>
<%
sub BackupData()
	dim bkfolder,bkdbname,fso
	bkfolder=Trim(request("bkfolder"))
	bkdbname=Trim(request("bkdbname"))
	if bkfolder="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定备份目录！</li>"
	end if
	if bkdbname="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定备份文件名</li>"
	end if
	if FoundErr=True then exit sub
	bkfolder=server.MapPath(bkfolder)
	Set Fso=server.createobject("Scripting.FileSystemObject")
	if fso.FileExists(server.mappath(dbpath)) then
		If fso.FolderExists(bkfolder)=False Then
			fso.CreateFolder(bkfolder)
		end if
		fso.copyfile server.mappath(dbpath),bkfolder & "\" & bkdbname & ".mdb"
		response.write "<center>备份数据库成功，备份的数据库为 " & bkfolder & "\" & bkdbname & ".mdb</center>"
		CloseAllObj
	Else
		response.write "<center>找不到源数据库文件，请检查Conn.asp中的配置。</center>"
	End if
end sub

sub CompactData()
	Dim fso, Engine, strDBPath
	DbPath=Server.mappath(Dbpath)
	response.write "主数据库"
	strDBPath = left(dbPath,instrrev(DBPath,"\"))
	on error resume next
	Set Conn = Nothing
	Set Conn_U = Nothing
	Set fso = Server.CreateObject("Scripting.FileSystemObject")
	If fso.FileExists(dbPath) Then
		Set Engine = CreateObject("JRO.JetEngine")
		Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath," Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"
		fso.CopyFile strDBPath & "temp.mdb",dbpath
		fso.DeleteFile(strDBPath & "temp.mdb")
		Set fso = Nothing
		Set Engine = Nothing
		response.write "压缩成功!"
		fy.SaveAdminLog
	Else
		response.write "没有找到!"
	End If
end sub

sub RestoreData()
	dim backpath,fso
	backpath=request.form("backpath")
	if backpath="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定原备份的数据库文件名！<li>"
		exit sub	
	end if
	backpath=server.mappath(backpath)
	on error resume next
	Set Conn = Nothing
	Set Conn_U = Nothing
	Set Fso=server.createobject("Scripting.FileSystemObject")
	if fso.fileexists(backpath) then  					
		fso.copyfile Backpath,Server.mappath(Dbpath)
		response.write "成功恢复数据！"
	else
		response.write "找不到指定的备份文件！"	
	end if
	Set Fso=Nothing
	fy.SaveAdminLog
	CloseAllObj
end sub

Sub DelBackup()
	dim Document,fso
	Document=request.form("Document")
	if Document="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定备份的数据库文件名！<li>"
		exit sub	
	end if
	Set Fso=server.createobject("Scripting.FileSystemObject")
	fso.DeleteFile(server.mappath(Document))
	response.write "成功删除数据库！"
	Set Fso=Nothing
	CloseAllObj
End sub

Sub ShowSpaceInfo(drvpath)
	dim fso,d,size
	set fso=server.createobject("Scripting.FileSystemObject") 		
	drvpath=server.mappath(drvpath) 		 		
	set d=fso.getfolder(drvpath) 		
	size=d.size
	response.write "<font face=verdana>" & GetSize(size,"b") & "</font>"
End Sub	
Function GetSize(size,unit)
		if isEmpty(size) or Not Isnumeric(size) then Exit Function
		size=CheckUnit(size,unit)
 		if size>1024 then
 			size=(size/1024)
 			getsize=formatnumber(size,2) & " MB"
		else
			getsize=size & " KB"
			Exit Function
 		end if
 		if size>1024 then
 			size=(size/1024)
 			getsize=formatnumber(size,2) & " GB"
 		end if
	End Function
	Function CheckUnit(size,unit)
		Select Case Lcase(Unit)
		Case "b"
			CheckUnit = formatnumber(size/1024,2)
		Case "k"
			CheckUnit = size
		Case "m"
			CheckUnit = (size*1024)
		Case "g"
			CheckUnit = (size*1024*1024)
		Case Else
			CheckUnit = size
		End Select
	End Function
Function Drawbar(drvpath)
	dim fso,drvpathroot,d,size,totalsize,barsize
	set fso=server.createobject("Scripting.FileSystemObject")
	drvpathroot=server.mappath(gqwebdir)
	set d=fso.getfolder(drvpathroot)
	totalsize=d.size
	
	drvpath=server.mappath(drvpath) 		
	set d=fso.getfolder(drvpath)
	size=d.size
	
	barsize=cint((size/totalsize)*500)
	Drawbar=barsize
End Function 	

sub SQLUserReadme()
%>
		<table border="0"  cellspacing="1" cellpadding="5" height="1" align=center width="95%" class="Border">			<tr>
  					<td height=25 class="title">
  					&nbsp;&nbsp;SQL数据库数据处理说明
  					</td>
  				</tr> 	
 				<tr>
 					<td class="tdbg"> 			
 			<blockquote>
<B>一、备份数据库</B>
<BR><BR>
1、打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server<BR>
2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录<BR>
3、选择你的数据库名称（如网站数据库fy_Web）-->然后点上面菜单中的工具-->选择备份数据库<BR>
4、备份选项选择完全备份，目的中的备份到如果原来有路径和名称则选中名称点删除，然后点添加，如果原来没有路径和名称则直接选择添加，接着指定路径和文件名，指定后点确定返回备份窗口，接着点确定进行备份
<BR><BR>
<B>二、还原数据库</B><BR><BR>
1、打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server<BR>
2、SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标，新建数据库的名字自行取<BR>
3、点击新建好的数据库名称（如网站数据库fy_Web）-->然后点上面菜单中的工具-->选择恢复数据库<BR>
4、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回，这时候设备栏应该出现您刚才选择的数据库备份文件名，备份号默认为1（如果您对同一个文件做过多次备份，可以点击备份号旁边的查看内容，在复选框中选择最新的一次备份后点确定）-->然后点击上方常规旁边的选项按钮<BR>
5、在出现的窗口中选择在现有数据库上强制还原，以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置（也可以指定自己的目录），逻辑文件名不需要改动，移至物理文件名要根据你所恢复的机器情况做改动，如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data，那么就按照您恢复机器的目录进行相关改动改动，并且最后的文件名最好改成您当前的数据库名（如原来是fy_Web_data.mdf，现在的数据库是fy_Web，就改成fy_Web_data.mdf），日志和数据文件都要按照这样的方式做相关的改动（日志的文件名是*_log.ldf结尾的），这里的恢复目录您可以自由设置，前提是该目录必须存在（如您可以指定d:\sqldata\fy_Web_data.mdf或者d:\sqldata\fy_Web_log.ldf），否则恢复将报错<BR>
6、修改完成后，点击下面的确定进行恢复，这时会出现一个进度条，提示恢复的进度，恢复完成后系统会自动提示成功，如中间提示报错，请记录下相关的错误内容并询问对SQL操作比较熟悉的人员，一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误，数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作，如果还提示正在使用的错误可以将SQL服务停止然后重起看看，至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复<BR><BR>

<B>三、收缩数据库</B><BR><BR>
一般情况下，SQL数据库的收缩并不能很大程度上减小数据库大小，其主要作用是收缩日志大小，应当定期进行此操作以免数据库日志过大<BR>
1、设置数据库模式为简单模式：打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称（如网站数据库fy_Web）-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”，然后按确定保存<BR>
2、在当前数据库上点右键，看所有任务中的收缩数据库，一般里面的默认设置不用调整，直接点确定<BR>
3、<font color=blue>收缩数据库完成后，建议将您的数据库属性重新设置为标准模式，操作方法同第一点，因为日志在一些异常情况下往往是恢复数据库的重要依据</font>
<BR><BR>

<B>四、设定每日自动备份数据库</B><BR><BR>
<font color=red>强烈建议有条件的用户进行此操作！</font><BR>
1、打开企业管理器，在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器<BR>
2、然后点上面菜单中的工具-->选择数据库维护计划器<BR>
3、下一步选择要进行自动备份的数据-->下一步更新数据优化信息，这里一般不用做选择-->下一步检查数据完整性，也一般不选择<BR>
4、下一步指定数据库维护计划，默认的是1周备份一次，点击更改选择每天备份后点确定<BR>
5、下一步指定备份的磁盘目录，选择指定目录，如您可以在D盘新建一个目录如：d:\databak，然后在这里选择使用此目录，如果您的数据库比较多最好选择为每个数据库建立子目录，然后选择删除早于多少天前的备份，一般设定4－7天，这看您的具体备份要求，备份文件扩展名一般都是bak就用默认的<BR>
6、下一步指定事务日志备份计划，看您的需要做选择-->下一步要生成的报表，一般不做选择-->下一步维护计划历史记录，最好用默认的选项-->下一步完成<BR>
7、完成后系统很可能会提示Sql Server Agent服务未启动，先点确定完成计划设定，然后找到桌面最右边状态栏中的SQL绿色图标，双击点开，在服务中选择Sql Server Agent，然后点击运行箭头，选上下方的当启动OS时自动启动服务<BR>
8、这个时候数据库计划已经成功的运行了，他将按照您上面的设置进行自动备份
<BR><BR>
修改计划：<BR>
1、打开企业管理器，在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->管理-->数据库维护计划-->打开后可看到你设定的计划，可以进行修改或者删除操作
<BR><BR>
<B>五、数据的转移（新建数据库或转移服务器）</B><BR><BR>
一般情况下，最好使用备份和还原操作来进行转移数据，在特殊情况下，可以用导入导出的方式进行转移，这里介绍的就是导入导出方式，导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小（收缩）数据库的大小，本操作默认为您对SQL的操作有一定的了解，如果对其中的部分操作不理解，可以咨询动网相关人员或者查询网上资料<BR>
1、将原数据库的所有表、存储过程导出成一个SQL文件，导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项<BR>
2、新建数据库，对新建数据库执行第一步中所建立的SQL文件<BR>
3、用SQL的导入导出方式，对新数据库导入原数据库中的所有表内容<BR>
 			</blockquote> 	
 					</td>
 				</tr>
 			</table>
<%
end sub

Sub ServerInfo()
'on error resume next
%>
<br>
<SCRIPT language="JScript" runat="server">
function getJVer(){
  //获取JScript 版本
  return ScriptEngineMajorVersion() +"."+ScriptEngineMinorVersion()+"."+ ScriptEngineBuildVersion();
}
</SCRIPT>
<table border="0" cellspacing="1" cellpadding="5" align=center class="Border">
	<tr class="title">
		<td height=25 colspan=4 align=center>系统信息检测情况</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>当前网站版本</td>
		<td width="24%">重庆信息网</td>
		<td width="25%">数据库类型：</td>
		<td width="24%">
		<%
		If is_sqldata = 1 Then
			Response.Write "Sql Server"
		Else
			Response.Write "Access"
		End If
		%></td>
	</tr>
	<tr class="title">
		<td  width="100%" height=23 colspan=4 align=center>服务器相关信息</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>服务器名/IP</td>
		<td width="24%">
		名：<%=Request.ServerVariables("SERVER_NAME")%><br>
		IP：<%=Request.ServerVariables("LOCAL_ADDR")%>
		</td>
		<td width="25%">服务器操作系统</td>
		<td width="24%"><%=GetSysInfo(0)%></td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>服务器脚本解释引擎</td>
		<td width="24%"><%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %><br><%="JScript/" & getjver()%></td>
		<td width="25%">IIS 版本</td>
		<td width="24%"><%=Request.ServerVariables("SERVER_SOFTWARE")%></td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>脚本超时时间</td>
		<td width="24%"><%=Server.ScriptTimeout%> 秒</td>
		<td width="25%">服务器CPU数量</td>
		<td width="24%"><%=GetSysInfo(1)%> 个</td>
	</tr>
	<tr class="tdbg">
		<td width="100%" height=23 colspan=4>
		本文件路径：<%=Server.Mappath("Admin_data.asp")%>
		</td>
	</tr>
	<tr class="title">
		<td width="100%" colspan=4 height=23 align=center>主要组件信息</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>FSO文件读写</td>
		<td width="24%">
		<%
		If ObjInstalled Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%">Jmail发送邮件支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("JMail.SmtpMail") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%></td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>CDONTS发送邮件支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("CDONTS.NewMail") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%">AspEmail发送邮件支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("Persits.MailSender") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>无组件上传支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("Adodb." & "Str" & "eam") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%">AspUpload上传支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("Persits.Upload") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>SA-FileUp上传支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("SoftArtisans.FileUp") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%">DvFile-Up上传支持</td>
		<td width="24%">
		<%
		If IsObjInstalled("DvFile.Upload") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>CreatePreviewImage生成预览图片</td>
		<td width="24%">
		<%
		If IsObjInstalled("CreatePreviewImage.cGvbox") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%">AspJpeg生成预览图片</td>
		<td width="24%">
		<%
		If IsObjInstalled("Persits.Jpeg") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>SA-ImgWriter生成预览图片</td>
		<td width="24%">
		<%
		If IsObjInstalled("SoftArtisans.ImageGen") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%">AspHTTP.Conn</td>
		<td width="24%">		<%
		If IsObjInstalled("AspHTTP.Conn") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%></td>
	</tr>
	<tr class="tdbg">
		<td width="25%" height=23>Microsoft.XMLHTTP</td>
		<td width="24%">
		<%
		If IsObjInstalled("Microsoft.XMLHTTP") Then
			Response.Write "<font color=green><b>√</b></font>"
		Else
			Response.Write "<font color=red><b>×</b></font>"
		End If
		%>
		</td>
		<td width="25%"></td>
		<td width="24%"></td>
	</tr>
	<FORM action="Admin_Data.asp?action=ServerInfo" method=post id=form1 name=form1>
	<tr class="tdbg">
		<td width="100%" height=23 colspan=4>
		<%
		If Request("classname")<>"" Then
			If IsObjInstalled(Request("classname")) Then
				Response.Write "<font color=green><b>本服务器支持 "&Request("classname")&" 组件</b></font><BR>"
			Else
				Response.Write "<font color=red><b>本服务器不支持 "&Request("classname")&" 组件</b></font><BR>"
			End If
		End If
		%>
		其它组件支持情况查询：<input class=input type=text value="" name="classname" size=30>
		<INPUT type=submit value="查 询" id=submit1 name=submit1>
		输入组件的 ProgId 或 ClassId
		</td>
	</tr>
	</form>
</table>
<%Response.Flush%>
<table border="0" cellspacing="1" cellpadding="5" height="1" align=center width="95%" class="Border">
	<tr class="tdbg">
		<td  width="100%" colspan=5 height=23>
		<B>磁盘文件操作速度测试</B>
		</td>
	</tr>
	<tr class="tdbg">
		<td width="100%" colspan=5 height=23>
<%
	Response.Write "正在重复创建、写入和删除文本文件50次..."

	Dim thetime3,tempfile,iserr,t1,FsoObj,tempfileOBJ,t2
	Set FsoObj=Server.CreateObject("Scripting.FileSystemObject")
	on error resume next
	iserr=False
	t1=timer
	tempfile=server.MapPath("./") & "\aspchecktest.txt"
	For i=1 To 50
		Err.Clear
		Set tempfileOBJ = FsoObj.CreateTextFile(tempfile,true)
		If Err <> 0 Then
			Response.Write "创建文件错误！"
			iserr=True
			Err.Clear
			Exit For
		End If
		tempfileOBJ.WriteLine "Only for test. Ajiang ASPcheck"
		If Err <> 0 Then
			Response.Write "写入文件错误！"
			iserr=True
			Err.Clear
			Exit For
		End If
		tempfileOBJ.close
		Set tempfileOBJ = FsoObj.GetFile(tempfile)
		tempfileOBJ.Delete 
		If Err <> 0 Then
			Response.Write "删除文件错误！"
			iserr=True
			Err.Clear
			Exit For
		end if
		Set tempfileOBJ=Nothing
	Next
	t2=timer
	If Not iserr Then
		thetime3=cstr(int(( (t2-t1)*10000 )+0.5)/10)
		Response.Write "...已完成！本服务器执行此操作共耗时 <font color=red>" & thetime3 & " 毫秒</font>"
	End If
%>
		</td>
	</tr>
</table>
<%Response.Flush%>
<table border="0" cellspacing="1" cellpadding="5" height="1" align=center width="95%" class="Border">
	<tr class="tdbg">
		<td width="100%" colspan=5 height=23>
		<B>ASP脚本解释和运算速度测试</B>
		</td>
	</tr>
	<tr class="tdbg">
		<td  width="100%" colspan=5 height=23>
<%

	Response.Write "整数运算测试，正在进行50万次加法运算..."
	dim lsabc,thetime,thetime2
	t1=timer
	for i=1 to 500000
		lsabc= 1 + 1
	next
	t2=timer
	thetime=cstr(int(( (t2-t1)*10000 )+0.5)/10)
	Response.Write "...已完成！共耗时 <font color=red>" & thetime & " 毫秒</font><br>"


	Response.Write "浮点运算测试，正在进行20万次开方运算..."
	t1=timer
	for i=1 to 200000
		lsabc= 2^0.5
	next
	t2=timer
	thetime2=cstr(int(( (t2-t1)*10000 )+0.5)/10)
	Response.Write "...已完成！共耗时 <font color=red>" & thetime2 & " 毫秒</font><br>"
%>
		</td>
	</tr>
</table>
<%
end sub

Function GetSysInfo(strtype)
	on error resume next
	Dim WshShell,WshSysEnv
	Set WshShell = server.CreateObject("WScr" & "ipt" & "." & "Sh" & "ell")
	Set WshSysEnv = WshShell.Environment("SYSTEM")
	if strtype=1 then
		GetSysInfo=cstr(WshSysEnv("NUMBER_OF_PROCESSORS"))
	elseif strtype=2 then
		GetSysInfo=cstr(WshSysEnv("PROCESSOR_IDENTIFIER"))
	else
		GetSysInfo=cstr(WshSysEnv("OS"))
		if Request.ServerVariables("OS")="" then GetSysInfo="Windows Server 2003"
	end if
end Function
%>
<%

%>
