www.gusucode.com > CRM源码带手机版ASP源码程序 > System/Sql.asp
<!--#include file="../data/conn.asp" --> <% '获取get值 action = Request.QueryString("action") otype = Request.QueryString("otype") if otype="" then otype="Main" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <link href="<%=SiteUrl&skinurl%>Style/common.css" rel="stylesheet" type="text/css"> <title></title> <script> function checkInput() { if(document.getElementById('refinput').value == ""){ alert("不能为空"); document.getElementById('refinput').focus(); return false; } if(document.getElementById('refselect').value == ""){ alert("不能为空"); document.getElementById('refselect').focus(); return false; } } function checkclick(msg){ if(confirm(msg)){ event.returnValue=true; } else{ event.returnValue=false; } } function copyToClipBoard(){ var clipBoardContent=document.title; clipBoardContent+='\r\n' + document.location.href; window.clipboardData.setData("Text",clipBoardContent); alert("复制成功,请粘贴到上方路径输入框!\r\n\r\n内容如下:\r\n" +clipBoardContent); } </script> </head> <body style="padding-top:35px;"> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="top_bg"> <tr> <td class="top_left td_t_n td_r_n">当前位置:系统管理 > 数据库管理</td> <td class="top_right td_t_n td_r_n"> <input type="button" class="button_top_reload" value=" " title="刷新" onClick=window.location.href="javascript:window.location.reload();" /> <input type="button" class="button_top_back" value=" " title="后退" onClick=window.location.href="javascript:history.back();" /> <input type="button" class="button_top_go" value=" " title="前进" onClick=window.location.href="javascript:history.go(1);" /> </td> </tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" class="td_n pdr10 pdt10"> <div class="MenuboxS"> <ul> <li <%if otype="Main" then%>class="hover"<%end if%>><span><a href="?otype=Main&action=Main">配置管理</a></span></li> <li <%if otype="DBmanage" then%>class="hover"<%end if%>><span><a href="?otype=DBmanage&action=DBmanage">数据库操作</a></span></li> <li <%if otype="DBsql" then%>class="hover"<%end if%>><span><a href="?otype=DBsql&action=DBsql">SQL语句</a></span></li> <li <%if otype="DBbak" then%>class="hover"<%end if%>><span><a href="?otype=DBbak&action=DBbak">备份数据库</a></span></li> <%if Accsql=0 then%> <li <%if otype="DBCompress" then%>class="hover"<%end if%>><span><a href="?otype=DBCompress&action=DBCompress">压缩数据库</a></span></li> <%end if%> <!--<li <%if otype="DBrestored" then%>class="hover"<%end if%>><span><a href="?otype=DBrestored&action=DBrestored">恢复数据库</a></span></li>--> </ul> </div> </td> </tr> <% dim i,rs,sql '用户表 设计表 打开表 新建表 新建字段 删除表 保存字段修改 'cz=1 cz=2 cz=3 cz=4 cz=5 cz=6 cz=7 '删除字段 保存 SQL语句 执行SQL 备份数据库 执行备份数据库 还原数据库 执行还原数据库 'cz=8 cz=9 cz=10 cz=11 cz=12 cz=13 cz=14 cz=15 Select Case action Case "EditMssql" '数据库连接信息 Call EditMssqllink() Case "DBmanage" '用户表 Call DBmanage() Case "DBdesign" '设计表 Call DBdesign() Case "DBopen" '打开表 Call DBopen() Case "DBaddnew" '新建表 Call DBaddnew() Case "DBaddnewfield" '新建字段 Call DBaddnewfield() Case "DBdel" '删除表 Call DBdel() Case "DBsavefield" '保存字段修改 Call DBsavefield() Case "DBdelfield" '删除字段 Call DBdelfield() Case "DBsave" '保存 Call DBsave() Case "DBsql" 'SQL语句 Call DBsql() Case "DBsqlsub" '执行SQL语句 Call DBsqlsub() Case "DBbak" '备份数据库 Call DBbak() Case "DBbacksave" '执行备份数据库 if Accsql=1 then Call DBbacksave() else Call DBbacksaveacc() end if Case "DBCompress" '压缩数据库 Call DBCompress() Case "DBCompresssave" '执行压缩数据库 Call DBCompresssave() Case "DBrestored" '恢复数据库 Call DBrestored() Case "DBrestoredsave" '执行还原数据库 Call DBrestoredsave() Case Else Call main() End Select if trim(request.Cookies("linkok"))="yes" then if not IsObject(conn) then LinkData end if %> <% Sub main()%> <tr> <td valign="top" class="td_n pd10"> <form name="login" action="sql.asp?action=EditMssql" method="post"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <col width="130" /> <tr class="tr_t"> <td class="td_l_l" COLSPAN="2"><B>数据库连接 </B></td> </tr> <Tr> <TD class="td_l_r title" width="100">数据库类型</TD> <TD class="td_l_l"> <input name="Accsql" type="radio" class="noborder" value="1" <%if Accsql=1 then%>checked<%end if%>> Mssql2005 <input name="Accsql" type="radio" class="noborder" value="0" <%if Accsql=0 then%>checked<%end if%>> Access </TD> </TR> <Tr> <TD class="td_l_r title" width="100">数据库主机</TD> <TD class="td_l_l"><input name="item1" type="text" id="item1" value="<%if Data_Source<>"" then%><%=Data_Source%><%else%>(local)<%end if%>" class="setup_int" style=" width:150px;"> (例:LENOVO\SQLEXPRESS)</TD> </TR> <Tr> <TD class="td_l_r title">数据库名称</TD> <TD class="td_l_l "><input name="item2" type="text" id="item2" value="<%if Data_Catalog<>"" then%><%=Data_Catalog%><%end if%>" class="setup_int" style=" width:150px;"> (例:Easycrm)</TD> </TR> <Tr> <TD class="td_l_r title">数据库用户</TD> <TD class="td_l_l "><input name="item3" type="text" id="item3" value="<%if Data_User<>"" then%><%=Data_User%><%end if%>" class="setup_int" style=" width:150px;"> (例:sa)</TD> </TR> <Tr> <TD class="td_l_r title">数据库密码</TD> <TD class="td_l_l "><input name="item4" type="text" id="item4" value="<%if Data_Password<>"" then%><%=Data_Password%><%end if%>" class="setup_int" style=" width:150px;"></TD> </TR> <Tr> <TD class="td_l_r title">ACC数据库</TD> <TD class="td_l_l "><input name="item5" type="text" id="item5" value="<%if Data_MDBPath<>"" then%><%=Data_MDBPath%><%end if%>" class="setup_int" style=" width:150px;"></TD> </TR> <tr class="tr_f"> <td class="td_l_l fontnobold" COLSPAN="2"><input type="Submit" class="button45" value="修改" /> <font color="#color:#CC0000">★</font> 注意:此操作有一定风险。</td> </tr> </table> </form> </td> </tr> <% end Sub Sub EditMssqllink() Data_Source = replace(Trim(Request.Form("item1")),CHR(34),"'") Data_Catalog = replace(Trim(Request.Form("item2")),CHR(34),"'") Data_User = replace(Trim(Request.Form("item3")),CHR(34),"'") Data_Password = replace(Trim(Request.Form("item4")),CHR(34),"'") Data_MDBPath = replace(Trim(Request.Form("item5")),CHR(34),"'") Accsql = replace(Trim(Request.Form("Accsql")),CHR(34),"'") Dim TempStr TempStr = "" TempStr = TempStr & chr(60) & "%" & VbCrLf TempStr = TempStr & "Dim Accsql,Data_MDBPath,Data_Source,Data_User,Data_Password,Data_Catalog,SystemNumber" & VbCrLf TempStr = TempStr & "'数据库连接" & VbCrLf TempStr = TempStr & "Accsql="&Accsql&" '数据库类型" & VbCrLf TempStr = TempStr & "Data_Source="& Chr(34) & Data_Source & Chr(34) &" 'MSSQL数据源(本机名\实例名 或 IP地址\实例名)" & VbCrLf TempStr = TempStr & "Data_Catalog="& Chr(34) & Data_Catalog & Chr(34) &" '数据库名称" & VbCrLf TempStr = TempStr & "Data_User="& Chr(34) & Data_User & Chr(34) &" '数据库用户" & VbCrLf TempStr = TempStr & "Data_Password="& Chr(34) & Data_Password & Chr(34) &" '数据库密码" & VbCrLf & VbCrLf TempStr = TempStr & "Data_MDBPath="& Chr(34) & Data_MDBPath & Chr(34) &" 'Access数据库路径" & VbCrLf & VbCrLf TempStr = TempStr & "SystemNumber="& Chr(34) & SystemNumber & Chr(34) &" '授权码" & VbCrLf & VbCrLf TempStr = TempStr & "%" & chr(62) & VbCrLf ADODB_SaveToFile TempStr,"../data/Mssql.asp" Response.Write("<script>alert(""修改成功!"");</script>") Response.Write "<script>location.href='?otype=Main&action=Main';</script>" end Sub Sub dbmanage() set rsSchema=conn.openSchema(20) rsSchema.movefirst %> <tr> <td colspan=2 class="Search_All td_n"> <form action="sql.asp?action=DBaddnew" method="post" onSubmit="return checkInput();">表名 <input type="text" id="refinput" name="crtablename" class="int" size="25" > <input type="submit" class="button245" value=" 建立新表 " id="submit"> <span class="info_help help01">新建的表默认创建一个ID字段,属性是数字型,递增,主键。</span></form> </td> </tr> <tr> <td valign="top" colspan=2 style="padding:0 10px 10px 10px;" class="td_n"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <tr class="tr_t"> <td class="td_l_c">表名</td> <td class="td_l_c" width="30%" colspan="4">操作</td> <td class="td_l_c" width="30%" colspan="4">表记录的SQL语句处理</td> </tr> <% Do Until rsSchema.EOF if rsSchema("TABLE_TYPE")="TABLE" then %> <tr class="tr"> <form action="sql.asp?action=DBsave&tablename2=<%=rsSchema("TABLE_NAME")%>" method="post"> <td class="td_r_l"><input type="text" name="tablename" value="<%=rsSchema("TABLE_NAME")%>" class="int" size="25"></td> <td class="td_r_c"><input type="submit" class="button227" value="保存"></td> </form> <td class="td_r_c"><a href="?action=DBdesign&otype=DBmanage&tablename=<%=rsSchema("TABLE_NAME")%>">设计表</a></td> <td class="td_r_c"><a href="?action=DBopen&otype=DBmanage&tablename=<%=rsSchema("TABLE_NAME")%>">打开表</a></td> <td class="td_r_c"><a onclick="checkclick('您确定要删除该表,包括里面的所有资料?')" href="?action=DBdel&tablename=<%=rsSchema("TABLE_NAME")%>">删除表</a></td> <td class="td_r_c"><a href="?action=DBsql&otype=DBsql&czsql=1&tablename=<%=rsSchema("TABLE_NAME")%>">查询</a></td> <td class="td_r_c"><a href="?action=DBsql&otype=DBsql&czsql=2&tablename=<%=rsSchema("TABLE_NAME")%>">插入</a></td> <td class="td_r_c"><a href="?action=DBsql&otype=DBsql&czsql=3&tablename=<%=rsSchema("TABLE_NAME")%>">更新</a></td> <td class="td_r_c"><a href="?action=DBsql&otype=DBsql&czsql=4&tablename=<%=rsSchema("TABLE_NAME")%>">删除</a></td> </tr> <% end if rsSchema.movenext Loop rsSchema.close set rsSchema=Nothing %> </table> </td> </tr> <% end Sub Sub DBdesign() dim fieldCount set rs=conn.execute("select * from ["&trim(request.QueryString("tablename"))&"]") fieldCount = rs.Fields.Count %> <tr> <td colspan=2 class="Search_All td_n"> <form action="sql.asp?action=DBaddnewfield&tablename=<%=trim(request.QueryString("tablename"))%>" method="post" id="form1" name="form1" onSubmit="return checkInput();">字段名 <input type="text" id="refinput" name="crfield" size="25" class="int" > <select name="fieldtype" class="int" id="refselect"> <option value="">字段类型</option> <option value="int">int</option> <option value="bigint">bigint</option> <option value="smallint">smallint</option> <option value="varchar">varchar</option> <option value="ntext">ntext</option> <option value="float">float</option> <option value="bit">bit</option> <option value="nvarchar">nvarchar</option> <option value="datetime">datetime</option> <option value="image">image</option> <option value="text">text</option> <option value="nchar">nchar</option> <option value="money">money</option> <option value="smalldatetime">smalldatetime</option> <option value="numeric">numeric</option> <option value="varbinary">varbinary</option> <option value="tinyint">tinyint</option> <option value="timestamp">timestamp</option> <option value="sql_variant">sql_variant</option> <option value="real">real</option> </select> <input type="submit" class="button245" value=" 新建字段 " id="1" name="1"> (设计表) <B style="color:#f00;"><%=trim(request.QueryString("tablename"))%></B> 共<%=fieldCount%>个字段</form> </td> </tr> <tr> <td valign="top" colspan=2 style="padding:0 10px 10px 10px;" class="td_n"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <tr class="tr_t"> <td class="td_l_c">字段名称</td> <td class="td_l_c">字段类型</td> <td class="td_l_c">字段长度</td> <td class="td_l_c" colspan="2">操作</td> </tr> <% For i=0 to fieldCount - 1 %> <tr class="tr"> <form action="sql.asp?action=DBsavefield&tablename=<%=trim(request.QueryString("tablename"))%>" method="post" onSubmit="return checkInput();"> <td class="td_l_c"><input type="text" name="fieldsname" id="refinput" value="<%=rs.Fields(i).Name%>" size="10"><input type="hidden" name="fieldsname2" value="<%=rs.Fields(i).Name%>"></td> <td class="td_l_c"> <select name="fieldtype" id="refselect"> <% select case rs.Fields(i).type case 3 Response.Write "<option value=""int"">int</option>" case 5 Response.Write "<option value=""float"">float</option>" case 11 Response.Write "<option value=""bit"">bit</option>" case 20 Response.Write "<option value=""bigint"">bigint</option>" case 130 Response.Write "<option value=""nchar"">nchar</option>" case 200 Response.Write "<option value=""varchar"">varchar</option>" case 202 Response.Write "<option value=""nvarchar"">nvarchar</option>" case 203 Response.Write "<option value=""ntext"">ntext</option>" case 205 Response.Write "<option value=""image"">image</option>" case 135 Response.Write "<option value=""datetime"">datetime</option>" case else Response.Write "<option value="""">"&rs.Fields(i).type&"</option>" end select %> <option value="int">int</option> <option value="bigint">bigint</option> <option value="smallint">smallint</option> <option value="varchar">varchar</option> <option value="ntext">ntext</option> <option value="float">float</option> <option value="bit">bit</option> <option value="nvarchar">nvarchar</option> <option value="datetime">datetime</option> <option value="image">image</option> <option value="text">text</option> <option value="nchar">nchar</option> <option value="money">money</option> <option value="smalldatetime">smalldatetime</option> <option value="numeric">numeric</option> <option value="varbinary">varbinary</option> <option value="tinyint">tinyint</option> <option value="timestamp">timestamp</option> <option value="sql_variant">sql_variant</option> <option value="real">real</option> </select> </td> <td class="td_l_c"><input name="fieldssize" type="text" value="<%=rs.Fields(i).DefinedSize%>" size="10"></td> <td class="td_l_c" width="10%"><input type="submit" class="button227" value="保存"></td> <td class="td_l_c" width="10%"><a onclick="checkclick('您确定要删除该字段,包括里面的所有资料?')" href="sql.asp?action=DBdelfield&tablename=<%=trim(request.QueryString("tablename"))%>&fieldsname=<%=rs.Fields(i).Name%>">删除</a></td> </form> </tr> <% Next rs.close set rs=nothing %> </table> </td> </tr> <% end Sub Sub DBopen() %> <tr> <td colspan=2 class="Search_All td_n"> <a href="?action=DBsql&czsql=1&tablename=<%=trim(request.QueryString("tablename"))%>">表记录查询</a> | <a href="?action=DBsql&czsql=2&tablename=<%=trim(request.QueryString("tablename"))%>">插入</a> | <a href="?action=DBsql&czsql=3&tablename=<%=trim(request.QueryString("tablename"))%>">更新</a> | <a href="?action=DBsql&czsql=4&tablename=<%=trim(request.QueryString("tablename"))%>">删除</a> | <span class="info_help help01">只显示前10条记录</span> </td> </tr> <tr> <td valign="top" colspan=2 style="padding:0 10px 10px 10px;" class="td_n"> <% set rs=conn.execute("select top 10 * from ["&trim(request.QueryString("tablename"))&"]") fieldCount = rs.Fields.Count %> <table border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <tr class="tr_t"> <% For i=0 to fieldCount - 1 %> <td class="td_l_c"><%=rs.Fields(i).Name%></td> <% Next %> </tr> <% while not rs.eof %> <tr class="tr"> <% For i=0 to fieldCount - 1 %> <td class="td_l_c"><TEXTAREA class="int" cols="15" style="height:23px;margin:5px;"><%if ISEMPTY(rs(i)) then Response.Write () else Response.Write rs(i) end if %></TEXTAREA></td> <% Next %> </tr> <% rs.movenext wend rs.close set rs=nothing %> </table> </td> </tr> <% End Sub Sub DBaddnew() dim crtablename crtablename=trim(request.Form("crtablename")) crtable("CREATE TABLE ["&crtablename&"] (ID int IDENTITY (1,1) not null PRIMARY key)") End Sub Sub DBaddnewfield() dim crfield tablename=trim(request.QueryString("tablename")) crfield=trim(request.Form("crfield")) fieldtype=trim(request.Form("fieldtype")) select case fieldtype case "" Response.Write "请选择字段类型" case "varchar" crtable("ALTER TABLE ["&tablename&"] ADD ["&crfield&"] varchar(255)") case "nvarchar" crtable("ALTER TABLE ["&tablename&"] ADD ["&crfield&"] nvarchar(50)") case else crtable("ALTER TABLE ["&tablename&"] ADD ["&crfield&"] "&fieldtype&"") end select End Sub Sub DBdel() tablename=trim(request.QueryString("tablename")) crtable("DROP TABLE ["&tablename&"]") End Sub Sub DBsavefield() dim fieldsname,fieldsname2,fieldssize,fieldar tablename=trim(request.QueryString("tablename")) fieldsname=trim(request.Form("fieldsname")) fieldsname2=trim(request.Form("fieldsname2")) '原表名 fieldtype=trim(request.Form("fieldtype")) crtable("sp_rename '"&tablename&"."&fieldsname2&"','"&fieldsname&"','column';") '字段名修改 fieldssize=trim(request.Form("fieldssize")) fieldar="" select case fieldtype case "varchar","nvarchar" fieldar="("&fieldssize&")" end select if fieldssize=0 then fieldar="" end if crtable("ALTER TABLE ["&tablename&"] ALTER COLUMN ["&fieldsname&"] "&fieldtype&""&fieldar&"") '字段类型处理 End Sub Sub DBdelfield() tablename=trim(request.QueryString("tablename")) fieldsname=trim(request.QueryString("fieldsname")) crtable("Alter table ["&tablename&"] drop column ["&fieldsname&"]") End Sub Sub DBsave() dim tablename2 tablename=trim(request.Form("tablename")) tablename2=trim(request.QueryString("tablename2")) crtable("EXEC sp_rename ["&tablename2&"],["&tablename&"]") End Sub Sub DBsql() %> <tr> <td valign="top" class="td_n pd10"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <col width="130" /> <tr class="tr_t"> <td class="td_l_l" COLSPAN="6"><B>语句案例: </B></td> </tr> <tr class="tr"> <td class="td_l_r title">插入语句</td> <td class="td_l_l">insert into 表名(字段1,字段2)values('内容1','内容2')</td> </tr> <tr class="tr"> <td class="td_l_r title">更新语句</td> <td class="td_l_l">update 表名 set 字段1='内容1',字段2='内容2' where 字段3='内容3'</td> </tr> <tr class="tr"> <td class="td_l_r title">删除语句</td> <td class="td_l_l">delete from 表名 where 字段='内容'</td> </tr> <tr class="tr"> <td class="td_l_r title">查询语句</td> <td class="td_l_l">select top 显示的记录数目 字段1,字段2 from 表名 where 字段1='内容1'</td> </tr> <% tablename=trim(request.QueryString("tablename")) if tablename<>"" then dim czsql czsql="" select case request.QueryString("czsql") case 1 czsql="SELECT TOP 10 * FROM ["&tablename&"]" case 2 czsql="INSERT INTO ["&tablename&"] ( ) VALUES ( )" case 3 czsql="UPDATE ["&tablename&"] SET" case 4 czsql="DELETE FROM ["&tablename&"]" end select end if %> <form action="sql.asp?action=DBsqlsub&otype=DBsql" method="post" onSubmit="return checkInput();"> <tr> <td valign="top" class="td_l_l" colspan=2> <textarea name="sqlstr" id="refinput" class="int" style="width:98%;height:150px;margin:10px 0;"><%=czsql%></textarea> </td> </tr> <tr> <td class="td_l_l" colspan=2> <input name="Submit" type="submit" class="button45" value="执行SQL"> <input name="Rest" type="reset" class="button43" value="重写"> </td> </tr> </form> <tr class="tr_f"> <td class="td_l_l fontnobold" COLSPAN="6"><font color="#color:#CC0000">★</font>注意:用select查询记录的时候加上top语句,如果记录过多,就会出现延时,打不开等现象,加上top就可以限止显示多少条查询的结果。</td> </tr> </table> </td> </tr> <% End Sub Sub DBsqlsub() if instr(1,trim(request.Form("sqlstr")),"select",1)>0 then On Error Resume Next set rs=conn.Execute(trim(request.Form("sqlstr"))) If Err Then Response.Write ("<script>alert("" "&Err.Description&" "");history.back(-1);</script>") else Response.Write("<script>alert('执行:"&trim(request.Form("sqlstr"))&" 成功!');</script>") fieldCount = rs.Fields.Count %> <tr> <td valign="top" colspan=2 class="td_n pd10"> <table border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <tr class="tr_t"> <% For i=0 to fieldCount - 1 %> <td class="td_l_c"><%=rs.Fields(i).Name%></td> <% Next %> </tr> <% while not rs.eof %> <tr class="tr"> <% For i=0 to fieldCount - 1 %> <td class="td_l_c"><TEXTAREA id=textarea1 name=textarea1 class="int" cols="15" style="height:23px;margin:5px;"><%if ISEMPTY(rs(i)) then Response.Write () else Response.Write rs(i) end if %></TEXTAREA></td> <% Next %> </tr> <% rs.movenext wend rs.close set rs=nothing %> </table> </td> </tr> <% end if else crtable(trim(request.Form("sqlstr"))) end if End Sub Sub DBbak() %> <tr> <td valign="top" class="td_n pd10"> <form action="sql.asp?action=DBbacksave" method="post" onSubmit="return checkInput();"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <col width="130" /> <tr class="tr_t"> <td class="td_l_l" COLSPAN="6"><B>备份数据库: </B></td> </tr> <%if Accsql=1 then%> <tr> <td class="td_l_r title">文件名及路径</td> <td class="td_l_l"><input type="text" size=70 name="dbpath" id="refinput" class="int" value="<%=server.MapPath("../data/bak")%>\<%=year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())%>.bak"> <span class="info_help help01">备份路径是:../data/bak/</span></td> </tr> <tr> <td class="td_l_r title">找到的备份</td> <td class="td_l_l"><%=FileListBak("../data/bak","bak")%></td> </tr> <%else%> <tr> <td class="td_l_r title">数据库真实路径</td> <td class="td_l_l"><input name=DBpath type=text id="DBpath" value="<%=Data_MDBPath%>" size="40" /></td> </tr> <tr> <td class="td_l_r title">备份文件夹</td> <td class="td_l_l"><input name=bkfolder type=text value="../data/bak/" size="40" Readonly="true"/></td> </tr> <tr> <td class="td_l_r title">备份数据库名称</td> <td class="td_l_l"><input name=bkDBname type=text value="<%=year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())%>.mdb" size="40" /></td> </tr> <tr> <td class="td_l_r title">找到的备份</td> <td class="td_l_l"><%=FileListBak("../data/bak","bak")%></td> </tr> <%end if%> <tr> <td class="td_l_l" colspan=2><input type="submit" class="button45" value="开始备份" id=submit1 name=submit1></td> </tr> <tr class="tr_f"> <td class="td_l_l fontnobold" COLSPAN="6"><font color="#color:#CC0000">★</font> 注意:过大的数据库备份有可能超时,建议在访问量少的时候操作。</td> </tr> </table> </form> </td> </tr> <% End Sub Sub DBbacksave() dbpath = trim(Request.Form("dbpath")) If dbpath <> "" Then dim fso,Files Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(dbPath) Then Response.Write ("<script>alert(""该命名的备份数据库已经存在,请删除或更换备份文件名进行备份"");history.back(-1);</script>") Else Response.Flush dim srv,bak server.ScriptTimeout = 3600 Set srv=Server.CreateObject("SQLDMO.SQLServer") srv.LoginTimeout = 3600 srv.Connect Data_Source,Data_User,Data_Password Set bak = Server.CreateObject("SQLDMO.Backup") bak.Database=Data_Catalog bak.Devices=Files bak.Files=dbpath bak.SQLBackup srv if err.number>0 then Response.Write ("<script>alert("""&err.number&":"&err.description&" "");history.back(-1);</script>") else Response.Write ("<script>alert(""数据库已经备份成功"");location.href='?otype=DBbak&action=DBbak';</script>") end if End If End If End Sub Sub DBbacksaveacc() dim Dbpath,bkfolder,bkdbname,fso Dbpath=request.form("Dbpath") Dbpath=server.mappath(Dbpath) bkfolder=request.form("bkfolder") bkdbname=request.form("bkdbname") Set Fso=Server.CreateObject("Scripting.FileSystemObject") if fso.fileexists(dbpath) then If CheckDir(bkfolder) = True Then fso.copyfile dbpath,bkfolder& "\"& bkdbname else MakeNewsDir bkfolder fso.copyfile dbpath,bkfolder& "\"& bkdbname end if End if Response.Write ("<script>alert(""数据库已经备份成功"");location.href='?otype=DBbak&action=DBbak';</script>") End Sub '------------------检查某一目录是否存在------------------- Function CheckDir(FolderPath) dim fso1 folderpath=Server.MapPath(".")&"\"&folderpath Set fso1 = Server.CreateObject("Scripting.FileSystemObject") If fso1.FolderExists(FolderPath) then '存在 CheckDir = True Else '不存在 CheckDir = False End if Set fso1 = nothing End Function '-------------根据指定名称生成目录----------------------- Function MakeNewsDir(foldername) dim f,fso1 Set fso1 = Server.CreateObject("Scripting.FileSystemObject") Set f = fso1.CreateFolder(foldername) MakeNewsDir = True Set fso1 = nothing End Function Sub DBCompress() %> <tr> <td valign="top" class="td_n pd10"> <form action="sql.asp?action=DBCompresssave" method="post" onSubmit="return checkInput();"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <col width="130" /> <tr class="tr_t"> <td class="td_l_l" COLSPAN="2"><B>压缩数据库: </B></td> </tr> <tr> <td class="td_l_r title">数据库路径</td> <td class="td_l_l"><input name=dbpath type=text id="dbpath" value="<%=Data_MDBPath%>" size="40" /></td> </tr> <tr> <td class="td_l_l" colspan=2><input type="submit" class="button45" value="开始压缩" id=submit1 name=submit1></td> </tr> <tr class="tr_f"> <td class="td_l_l fontnobold" COLSPAN="6"><font color="#color:#CC0000">★</font> 注意:当前操作有一定风险,压缩前请确认已经备份。</td> </tr> </table> </form> </td> </tr> <% End Sub Sub DBCompresssave() dim dbpath dbpath = request("dbpath") If dbpath <> "" Then dbpath = server.mappath(dbpath) end if Dim fso, Engine, strDBPath,JET_3X strDBPath = left(dbPath,instrrev(DBPath,"\")) Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.FileExists(dbPath) Then fso.CopyFile dbpath,strDBPath & "temp.mdb" Set Engine = CreateObject("JRO.JetEngine") Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb", _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp1.mdb" fso.CopyFile strDBPath & "temp1.mdb",dbpath fso.DeleteFile(strDBPath & "temp.mdb") fso.DeleteFile(strDBPath & "temp1.mdb") Set fso = nothing Set Engine = nothing End If Response.Write ("<script>alert(""数据库压缩成功"");location.href='?otype=DBCompress&action=DBCompress';</script>") End Sub Sub DBrestored() %> <tr> <td valign="top" class="td_n pd10"> <form action="sql.asp?action=DBrestoredsave" method="post" onSubmit="return checkInput();"> <table width="100%" border="0" cellspacing="0" cellpadding="0" CLASS="table_1"> <tr class="tr_1"> <td class="td_2" COLSPAN="6"><B>恢复数据库: </B></td> </tr> <tr class="tr"> <td class="td_2 td_title">文件名及路径</td> <td class="td_2 td_content"><input type="text" size=70 name="dbpath" id="refinput" class="int" value=""> <span class="info_help help01">恢复路径是数据库服务器的路径</span></td> </tr> <tr class="tr"> <td class="td_2 td_title">找到的备份</td> <td class="td_2 td_content"><%=FileList("../data/bak","bak")%> <span class="info_help help01">选择后备份文件地址自动写入恢复路径</span></td> </tr> <tr class="tr"> <td class="td_2 td_title"></td> <td class="td_2 td_content"><input type="submit" class="button45" value="开始恢复" id=submit1 name=submit1></td> </tr> <tr class="tr_f"> <td class="td_l_l fontnobold" COLSPAN="6"><font color="#color:#CC0000">★</font> 注意:数据库正在使用时无法操作。</td> </tr> </table> </form> </td> </tr> <% End Sub Sub DBrestoredsave() closedata dbpath = trim(Request.Form("dbpath")) If dbpath <> "" Then Set fso = CreateObject("Scripting.FileSystemObject") If not fso.FileExists(dbPath) Then Response.Write ("<script>alert(""没有找到该备份文件,(注意路径为数据库服务器的路径)"");history.back(-1);</script>") Else Response.Write ("<script>alert(""正在从"&dbPath&"还原,请稍候"");</script>") Response.Flush server.ScriptTimeout = 3600 Set srv=Server.CreateObject("SQLDMO.SQLServer") srv.LoginTimeout = 3600 srv.Connect trim(request.Cookies("ipdress")),trim(request.Cookies("username")), trim(request.Cookies("password")) Set bak = Server.CreateObject("SQLDMO.Restore") bak.Action=0 bak.Database=trim(request.Cookies("dataname")) bak.Devices=Files bak.Files=dbpath bak.ReplaceDatabase=True bak.SQLRestore srv if err.number>0 then Response.Write ("<script>alert("""&err.number&":"&err.description&" "");history.back(-1);</script>") else Response.Write ("<script>alert(""数据库恢复成功"");location.href='?otype=DBbak&action=DBbak';</script>") end if End If End If Response.End End Sub closedata end if '---------------------------------------------------- Function RequestNumSafe(qudata) If isNumeric(qudata) then if qudata="" then RequestNumSafe=0 else RequestNumSafe=qudata end if else RequestNumSafe=0 end if End Function Function RequestCStringSafe(cstring) If Instr(1,cstring,"%")>0 or Instr(1,cstring,"=")>0 or Instr(1,cstring,"&")>0 or Instr(1,cstring,"#")>0 or Instr(1,cstring,">")>0 or Instr(1,cstring,"<")>0 or Instr(1,cstring,"'")>0 or Instr(1,cstring,";")>0 or Instr(1,cstring," ")>0 or Instr(1,cstring,"`")>0 or Instr(1,cstring,"*")>0 or Instr(1,cstring,",")>0 then RequestCStringSafe="" else RequestCStringSafe=cstring end if End Function Sub LinkData() Dim ConnStr ConnStr = "Provider = Sqloledb; User ID = " & Data_User & "; Password = " & Data_Password & "; Initial Catalog = " & Data_Catalog & "; Data Source = " & Data_Source & ";" On Error Resume Next Set conn = Server.CreateObject("ADODB.Connection") conn.open ConnStr If Err Then err.Clear Set Conn = Nothing Response.Write "数据库连接出错,请检查连接字串。" Response.End else Response.Cookies("linkok")="yes" End If End Sub Sub CloseData() if IsObject(conn) then conn.Close set conn=nothing end if End Sub Sub ADODB_SaveToFile(ByVal strBody,ByVal File) On Error Resume Next Dim objStream,FSFlag,fs,WriteFile FSFlag = 1 If DEF_FSOString <> "" Then Set fs = Server.CreateObject(DEF_FSOString) If Err Then FSFlag = 0 Err.Clear Set fs = Nothing End If Else FSFlag = 0 End If If FSFlag = 1 Then Set WriteFile = fs.CreateTextFile(Server.MapPath(File),True) WriteFile.Write strBody WriteFile.Close Set Fs = Nothing Else Set objStream = Server.CreateObject("ADODB.Stream") If Err.Number=-2147221005 Then GBL_CHK_TempStr = "您的主机不支持ADODB.Stream,无法完成操作,请使用FTP等功能,将<font color=Red >data/config.asp</font>文件内容替换成框中内容" Err.Clear Set objStream = Noting Exit Sub End If With objStream .Type = 2 .Open .Charset = "GB2312" .Position = objStream.Size .WriteText = strBody .SaveToFile Server.MapPath(File),2 .Close End With Set objStream = Nothing End If End Sub Function IsObjInstalled(strClassString) On Error Resume Next IsObjInstalled = False Err = 0 Dim xTestObj Set xTestObj = Server.CreateObject(strClassString) If Err = 0 Then IsObjInstalled = True If Err = -2147352567 Then IsObjInstalled = True Set xTestObj = Nothing Err = 0 End Function Function crtable(SqlCommand) On Error Resume Next Conn.Execute(SqlCommand) If Err Then 'Response.write ""&Err.Description&"<br>" Response.Write ("<script>alert("" "&Err.Description&" "");history.back(-1);</script>") else 'Response.Write "执行: "&SqlCommand&" 成功<br>" if action="DBaddnewfield" or action="DBsavefield" or action="DBdelfield" then Response.Write "<script>alert('执行:"&SqlCommand&" 成功!');location.href='sql.asp?action=DBdesign&otype=DBmanage&tablename="&trim(request.QueryString("tablename"))&"';</script>" elseif action="DBaddnew" then Response.Write("<script>alert('执行:"&SqlCommand&" 成功!');location.href='?otype=DBmanage&action=DBmanage';</script>") elseif action="DBsqlsub" then Response.Write("<script>alert('执行:"&SqlCommand&" 成功!');history.back(-1);</script>") else Response.Write("<script>alert('执行:"&SqlCommand&" 成功!');location.href='?otype=DBmanage&action=DBmanage';</script>") end if end if Response.Flush End Function Function FileList(FolderUrl,FileExName) Set fso=Server.CreateObject("Scripting.FileSystemObject") On Error Resume Next Set folder=fso.GetFolder(Server.MapPath(Trim(FolderUrl))) Set file=folder.Files FileList="" FileList=FileList&"<select onchange=""this.form.refinput.value=this.value;"" name=""FileList"" >" FileList=FileList&"<option value="""">请选择</option>" For Each FileName in file If Trim(FileExName)<>"" Then If InStr(Trim(FileExName),Trim(Mid(FileName.Name,InStr(FileName.Name,".")+1,len(FileName.Name))))>0 Then FileList=FileList&"<option value="""&server.MapPath("../data/bak")&"\"&FileName.Name&""">"&FileName.Name&"</option>" End If Else FileList=FileList&"<a href='#'>"&FileName.Name&"</a><br>" End If Next FileList=FileList&"</select>" Set file=Nothing Set folder=Nothing Set fso=Nothing End Function Function FileListBak(FolderUrl,FileExName) Set fso=Server.CreateObject("Scripting.FileSystemObject") On Error Resume Next Set folder=fso.GetFolder(Server.MapPath(Trim(FolderUrl))) Set file=folder.Files FileListBak="" For Each FileName in file FileListBak=FileListBak&"<a href='../data/bak\"&FileName.Name&"'>"&FileName.Name&"</a> <input type='button' class='button227' value='删除' onClick=window.location.href='?otype=DBbak&action=DBbak&Subaction=DelDataBakFlie&DataBakFlie=../data/bak/"&FileName.Name&"' /> <br>" Next Set file=Nothing Set folder=Nothing Set fso=Nothing End Function Subaction = Request.QueryString("Subaction") if Subaction="DelDataBakFlie" then DataBakFlie=request("DataBakFlie") if IsObjInstalled("Scripting.FileSystemObject") then s= server.MapPath(DataBakFlie) Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(s) Then fso.Deletefile(s) End If Set fso = Nothing end if Response.Write ("<script>alert(""数据库删除成功"");location.href='?otype=DBbak&action=DBbak';</script>") end if %> </table> </body> </html>