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

📄 admin_datebaseback.asp

📁 本源代码为终点小说连载系统 v1.15 Build 0430 SQL清风修改版,欢迎大家下载,学习与交流
💻 ASP
字号:
<!--#include file="Conn.ASP"-->
<!--#include file="../inc/config.asp"-->
<!--#include file="session.asp"-->
<html>
<head>
<title>数据管理</title>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="css.css" type="text/css">
</head>
<body>
<%Server.ScriptTimeout=999999 '程序执行超时秒数%>
<%
Sub ShowAdminErrMsg()
	dim strMsg
	strMsg=strMsg & "<br><br>" & vbcrlf
	strMsg=strMsg & "  <table cellpadding=""5"" cellspacing=""1"" border=""0"" width=400 class=""tableBorder"" align=center>" & vbcrlf
	strMsg=strMsg & "  <th height=25>错误信息</th>" & vbcrlf
	strMsg=strMsg & "  <tr class=""tdbg""><td height=""100"" valign=""top""><br>您的操作请求产生错误了,原因如下:<br><br>" & ErrCodes &"</td></tr>" & vbcrlf
	strMsg=strMsg & "  <tr class=""tdbg1"" align=""center""><td ><a href=""javascript:history.go(-1)""> &lt;&lt; 返回上一页</a></td></tr>" & vbcrlf
	strMsg=strMsg & "</table>" & vbcrlf
	response.write strMsg
End Sub
Sub ShowAdminSuccessMsg(SuccessMsg)
	dim strMsg
	strMsg=strMsg & "<br><br>" & vbcrlf
	strMsg=strMsg & "  <table cellpadding=""5"" cellspacing=""1"" border=""0"" width=400 class=""tableBorder"" align=center>" & vbcrlf
	strMsg=strMsg & "  <th height=25>成功信息</th>" & vbcrlf
	strMsg=strMsg & "  <tr><td class=""tdbg"" height=""100"" valign=""top""><br><li>" & SuccessMsg &"</td></tr>" & vbcrlf
	strMsg=strMsg & "  <tr align=""center""><td class=""tdbg1""><a href=""javascript:history.go(-1)"">&lt;&lt; 返回上一页</a></td></tr>" & vbcrlf
	strMsg=strMsg & "</table>" & vbcrlf
	response.write strMsg
End Sub
Dim Action,FoundErr,ErrCodes
dim dbpath,bkfolder,bkdbname,fso,fso1
Dim AFSO,AFile,AData,AFDate
FoundErr=0
Action=Request("action")
Select Case Action
	Case "BackupDataMain"
		Call BackupDataMain()
	Case "BackupData"
		Call backupdata()
	Case "CompressDataMain"
		Call CompressDataMain()
	Case "CompressData"
		Call CompressData()
	Case "RestoreDataMain"
		Call RestoreDataMain()
	Case "RestoreData"
		Call RestoreData()	
	Case "ConnSqlMain"
		Call ConnSqlMain()
	Case "ConnSql"
		Call ConnSql()		
	Case Else
End Select
If FoundErr=1 then
	Call  ShowAdminErrMsg()
End If

Sub BackupDataMain

%>
<table cellpadding="5" cellspacing="1" border="1" width="100%" align=center bordercolor="#A4CEE4" bordercolordark="#FFFFFF">
  <tr> <th colspan="2" height=25 bgcolor="#588fc7">
    <font color="#FFFFFF">
    <B>备份数据库</B>( 需要FSO支持,FSO相关帮助请看微软网站 )</font></th>
  </tr>
<form method="post" action="?action=BackupData&act=Backup">
  <tr> 
    <td height="25" nowrap><div align="right"><span class="TableRow1">当前SQL数据库名称:</span></div></td>
      <td class="tdbg1" height="25" width="100%" > 
        <span class="TableRow1">
        <input type=text size=25 name=SqlDataName value="<%=SqlDatabaseName%>">
      </span>    </td>
  </tr>
  <tr> 
    <td height="25" nowrap><div align="right"><span class="TableRow1">SQL数据库用户名称:</span></div></td>
    <td class="tdbg1" height="25" width="100%" > 
      <span class="TableRow1">
      <input type=text size=25 name=SqlUserID value="<%=SqlUsername%>">
      </span>      <span class="TableRow1">请输入您的SQL数据库用户名</span></td>
  </tr>
  <tr> 
    <td height="25" nowrap><div align="right"><span class="TableRow1">SQL数据库用户密码:</span></div></td>
    <td class="tdbg1" height="25" width="100%" > 
      <span class="TableRow1">
      <input type=Password size=25 name=SqlUserPass value="<%=SqlPassword%>">
      </span>      <span class="TableRow1">请输入您的SQL数据库连接密码</span></td>
  </tr>
  <tr>
    <td height="25" nowrap><div align="right"><span class="TableRow1">SQL数据库服务器名:</span></div></td>
    <td class="tdbg1" height="25" ><span class="TableRow1">
      <input type=text size=25 name=SqlServer value="<%=SqlLocalName%>">
连接服务器名(本地用local,外地用IP)    </span></td>
  </tr>
  <tr>
    <td height="25" nowrap><div align="right"><span class="TableRow1">备份SQL数据库目录:</span></div></td>
    <td class="tdbg1" height="25" ><span class="TableRow1">
      <input type=text size=25 name=BackupSqlDir value="Databackup">
    </span><span class="TableRow1">如目录不存在,程序将自动创建</span></td>
  </tr>
  <tr>
    <td height="25" nowrap><span class="TableRow1">备份SQL数据库名称:</span></td>
    <td class="tdbg1" height="25" ><span class="TableRow1">
      <input type=text size=25 name=BackupSqlName  value="$1.bak">
如使用默认的($1)备份名,系统将自动按日期时间创建备份名称    </span></td>
  </tr>
  <tr align="center"> 
    <td height="25" colspan="2"> 
      <input type=submit value="确定备份"  name="submit" class="button">
    </td>
  </tr>
 </form>
</table>
<%
End Sub

sub backupdata()
	On Error Resume Next
	Dim SqlDataName, SqlUserPass, SqlUserID, SqlServer, SqlLoginTimeout
	Dim srv, bak, BackupFilePath, BackupSqlDir, BackupSqlName,BackupFileName
	SqlDataName = Trim(Request.Form("SqlDataName"))
	SqlUserPass = Trim(Request.Form("SqlUserPass"))
	SqlUserID = Trim(Request.Form("SqlUserID"))
	SqlServer = Trim(Request.Form("SqlServer"))
	BackupSqlDir = Trim(Request.Form("BackupSqlDir"))
	BackupSqlName = Trim(Request.Form("BackupSqlName"))
	SqlLoginTimeout = 20 '登陆超时
	CheckSql
	If FoundErr = True Then Exit Sub
	If CheckDir(BackupSqlDir) = False Then
		MakeNewsDir BackupSqlDir
	End If
	BackupFileName = SqlDataName & "_" & Replace(FormatDateTime(now,2), "-", "") & "_" & Replace(FormatDateTime(now,3), ":", "")
	BackupFilePath = BackupSqlDir & "\" & BackupSqlName
	BackupFilePath = Replace(BackupFilePath, "$1", BackupFileName)
	Set srv = Server.CreateObject("SQLDMO.SQLServer")
	srv.LoginTimeout = SqlLoginTimeout
	srv.Connect SqlServer, SqlUserID, SqlUserPass
	Set bak = Server.CreateObject("SQLDMO.Backup")
	bak.Database = SqlDataName
	'bak.Devices = Files
	bak.Files = BackupFilePath
	bak.SQLBackup srv
	If Err.Number>0 Then
		Response.Write Err.Number & "<font color=red><br>"
		Response.Write Err.Description & "</font>"
	End If
	Set srv = Nothing
	Set bak = Nothing
	request.write "<li>SQL数据库备份成功!</li>"
end sub

'检查某一目录是否存在
Function CheckDir(FolderPath)
	folderpath=Server.MapPath(".")&"\"&folderpath
	Set fso1 = CreateObject("Scripting.FileSystemObject")
	If fso1.FolderExists(FolderPath) then
		'存在
		CheckDir = 1
	Else
		'不存在
		CheckDir = 0
	End if
	Set fso1 = nothing
End Function

'根据指定名称生成目录
Function MakeNewsDir(foldername)
	dim f
	Set fso1 = CreateObject("Scripting.FileSystemObject")
	Set f = fso1.CreateFolder(foldername)
	MakeNewsDir = 1
	Set fso1 = nothing
End Function

'压缩数据库
sub CompressDataMain()
%>
SQL数据库没必要压缩了!
<%
end sub

Sub CompressData()
	
	
End Sub

'恢复数据库
sub RestoreDataMain()

%>
<table cellpadding="5" cellspacing="1" border="1" width="100%" align=center bordercolor="#A4CEE4" bordercolordark="#FFFFFF">
  <tr> 
    <th colspan="2" height=25 bgcolor="#588fc7"> <font color="#FFFFFF"> <B>恢复网站数据</B>( 需要FSO支持,FSO相关帮助请看微软网站 
      )</font></th>
  </tr>
  <form method="post" action="?action=RestoreData">
    <tr> 
      <td height="25" colspan="2"><b>注意:</b><span class="TableRow1">您可以用这个功能来恢复您的法规数据,请确定你的数据库用户有相关权限才能恢复!</span></td>
    </tr>
    <tr> 
      <td height="25" nowrap><span class="TableRow1">恢复SQL数据库名称:</span></td>
      <td class="tdbg1" height="25" width="100%" > 
        <span class="TableRow1">
        <input type=text size=25 name=SqlDataName2 value="<%=SqlDatabaseName%>">
      </span>      </td>
    </tr>
    <tr> 
      <td height="25" nowrap><span class="TableRow1">SQL数据库用户名称:</span></td>
      <td class="tdbg1" height="25" width="100%" > 
        <span class="TableRow1">
        <input type=text size=25 name=SqlUserID2 value="<%=SqlUsername%>">
&nbsp;请输入您的SQL数据库用户名 </span></td>
    </tr>
    <tr>
      <td height="25" nowrap><span class="TableRow1">SQL数据库用户密码:</span></td>
      <td class="tdbg1" height="25" ><span class="TableRow1">
        <input type=Password size=25 name=SqlUserPass2 value="<%=SqlPassword%>">
      &nbsp;请输入您的SQL数据库连接密码</span></td>
    </tr>
    <tr>
      <td height="25" nowrap><span class="tdbg1"><span class="TableRow1">SQL数据库服务器名:</span></span></td>
      <td class="tdbg1" height="25" ><span class="TableRow1">          <input type=text size=25 name=SqlServer2 value="<%=SqlLocalName%>">
      &nbsp;连接服务器名(本地用local,外地用IP)</span></td>
    </tr>
    <tr>
      <td height="25" nowrap><span class="tdbg1"><span class="TableRow1">备份SQL数据库目录:</span></span></td>
      <td class="tdbg1" height="25" ><span class="TableRow1">
        <input type=text size=25 name=BackupSqlDir2 value="Databackup">
      &nbsp;请输入您备份的数据库目录</span></td>
    </tr>
    <tr>
      <td height="25" nowrap><span class="tdbg1"><span class="TableRow1">备份SQL数据库名称:</span></span></td>
      <td class="tdbg1" height="25" ><span class="TableRow1">
        <input type=text size=25 name=BackupSqlName2  value="$1.bak">
      &nbsp;请输入您备份的数据库名</span></td>
    </tr>
    <tr> 
      <td height="25" colspan="2" align="center"> 
        <input type=submit value="恢复数据" name="submit3" class="button">
      </td>
    </tr>
    <tr> 
      <td height="25" colspan="2"><span class="TableRow1">注意:数据库使用中可能无法恢复</span></td>
    </tr>
  </form>
</table>
<%
end sub

Sub RestoreData()
	On Error Resume Next
	Dim SqlDataName, SqlUserPass, SqlUserID, SqlServer, SqlLoginTimeout
	Dim srv, rest, BackupFilePath, BackupSqlDir, BackupSqlName, FSO
	SqlDataName = Trim(Request.Form("SqlDataName"))
	SqlUserPass = Trim(Request.Form("SqlUserPass"))
	SqlUserID = Trim(Request.Form("SqlUserID"))
	SqlServer = Trim(Request.Form("SqlServer"))
	BackupSqlDir = Trim(Request.Form("BackupSqlDir"))
	BackupSqlName = Trim(Request.Form("BackupSqlName"))
	SqlLoginTimeout = 20 '登陆超时
	CheckSql
	If FoundErr = True Then Exit Sub
	BackupFilePath = BackupSqlDir & "/" & BackupSqlName
	BackupFilePath = Replace(BackupFilePath, "$1", SqlDataName)
	BackupFilePath = Server.MapPath(BackupFilePath)
	Set FSO = Server.CreateObject("scripting.filesystemobject")
	If FSO.FileExists(BackupFilePath) Then
		Set srv = Server.CreateObject("SQLDMO.SQLServer")
		srv.LoginTimeout = SqlLoginTimeout
		srv.Connect SqlServer, SqlUserID, SqlUserPass
		Set rest = Server.CreateObject("SQLDMO.Restore")
		rest.Action = 0
		rest.Database = SqlDataName
		'rest.Devices = Files
		rest.Files = BackupFilePath
		rest.ReplaceDatabase = True
		rest.SQLRestore srv
		If Err.Number>0 Then
			ErrMsg = ErrMsg & "<li>备份数据库时发生错误!</li>"
			ErrMsg = ErrMsg & "<li>错误代码:"
			ErrMsg = ErrMsg & Err.Number & "</li><li><font color=red>"
			'Response.Write Err.Number&"<font color=red><br>"
			ErrMsg = ErrMsg &  Err.Description&"(注:此信息可能不准,请登陆FTP查看是不生成相应文件!)</font></li>"
			FoundErr = True
			Exit Sub
		End If
		Set srv = Nothing
		Set rest = Nothing
		response.write "<li>SQL数据库恢复成功!</li>"
	Else
		FoundErr = True
		ErrMsg = "备份目录下并无您的备份文件!"
		Exit Sub
	End If
	Set FSO = Nothing
	
End Sub

'数据库管理
Sub ConnSqlMain()
%>
<table cellpadding="5" cellspacing="1" border="1" width="100%" align=center bordercolor="#A4CEE4" bordercolordark="#FFFFFF">
  <tr> 
    <th colspan="2" height=25 bgcolor="#588fc7"> <font color="#FFFFFF"> <B>执行SQL操作</B></font></th>
  </tr>
  <form method="post" action="?action=ConnSql">
    <tr> 
      <td height="25" colspan="2"><b>SOL语句执行操作</b>:本操作仅限高级、对SQL编程比较熟悉的用户,您可以直接输入SQL执行语句,比如delete 
        from bbs1 where username='test'进行删除某用户帖子操作,在操作前请慎重考虑您的执行语句是否正确和完整,执行后不可恢复。</td>
    </tr>
    <tr> 
      <td height="25" nowrap>请输入SQL语句指令:</td>
      <td class="tdbg1" height="25" width="100%" > 
        <Input type="text" name="SQL_Statement" Size=60 class="form">
        <input type="Submit" value="执 行" name="Submit" class="button">
      </td>
    </tr>
  </form>
</table>
<%
End Sub

Sub ConnSql()
	If Not IsUseSQl Then
		ErrCodes = ErrCodes & "<li>本功能已经被设置为禁止使用!</li><br><li>如果您需要开启的话,请自行修改conn.ASP,找到IsUseSQl=0,改为:IsUseSQl=1;如果您的网站有2个以上管理员,为了系统安全,建议不要开启。"
		FoundErr=1	
		Exit Sub
	End If

	Dim SQL_Statement
	SQL_Statement=Request("SQL_Statement")
	if SQL_Statement<>"" then
		On Error Resume Next 
		ELOOK.Execute(SQL_Statement)
		if err.number=0 then
			Call ShowAdminSuccessMsg("SQL语句指令执行成功!")
		else
			ErrCodes = ErrCodes & "<li>SQL语句有问题!具体出错如下:<br>"&Err.Description&"</li><br>"
			FoundErr=1
		end if
	Else
		ErrCodes = ErrCodes & "<li>SQL语句指令不能为空!</li><br>"
		FoundErr=1
	End if
End Sub

%><br>执行此操作前,请先关闭其它网页窗口,断开FTP连接。<br>
提交后,请耐心等待<font color=red>(请不要重复点击上面的按钮),</font>完成时间视网络状况而定。<br>
本操作<font color="#FF0000">极占系统资源</font>请在网络空闲时进行此操作,<b>执行此操作可能导致服务器变慢或不稳定</b>。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -