国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

巧用SQL-DMO創(chuàng)建備份及校驗(yàn)的ASP應(yīng)用_ASP教程

2024-05-04 11:03:36
字體:
供稿:網(wǎng)友

推薦:ASP 3.0高級(jí)編程(四十五)
異步執(zhí)行是指在后臺(tái)檢索數(shù)據(jù),可以在全部數(shù)據(jù)返回之前在Web頁面上使用已經(jīng)得到的數(shù)據(jù)。雖然可能需要的是全部的數(shù)據(jù),但異步工作至少可提前開始處理數(shù)據(jù)。也可讓用戶先看到某些內(nèi)容,這使得Web站

概述

SQL分布式管理對(duì)象(SQL Distributed Management objects, SQL-DMO)為開發(fā)者提供了使用程序和腳本語言執(zhí)行普通任務(wù)的方法,從而擴(kuò)展了SQL Server功能。本文談?wù)撊绾吻擅畹睦肧QL-DMO創(chuàng)建數(shù)據(jù)庫備份和校驗(yàn)的ASP應(yīng)用。

前提

你需要有SQL Server數(shù)據(jù)庫備份的相關(guān)知識(shí)。另外還要在global.asa文件中加入SQL-DMO庫的引用。以下是SQL Server 2000的引用:

以下為引用的內(nèi)容:
<!--METADATA TYPE="TypeLib" NAME="Microsoft
SQLDMO Object Library" UUID="
{10010001-E260-11CF-AE68-00AA004A34D5}" VERSION="8.0"-->


本文示例代碼適用于SQL 7.0, MSDE, 和 SQL Server 2000。

喜與憂

使用SQL-DMO對(duì)象讓人且喜且憂。它提供了非常豐富的功能,以至于不知該如何使用。本文只討論示例涉及的對(duì)象屬性和方法。你可以在SQL Server在線教學(xué)上找到許多相關(guān)信息。

SQLDMO.SQLServer

用于連接SQL Server數(shù)據(jù)庫:


以下為引用的內(nèi)容:
<%
Dim srv
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
%>

這里通過代入用戶名和口令來連接SQL Server數(shù)據(jù)庫。如果要使用NT的身份認(rèn)證,就將它的LoginSecure屬性設(shè)為真(TRUE),忽略代入的用戶名和口令,而使用NT的注冊(cè)信息。

SQLDMO.Database

列出服務(wù)器中的數(shù)據(jù)庫。在本文示例中,對(duì)列出的數(shù)據(jù)庫進(jìn)行備份。下面的代碼將服務(wù)器中的數(shù)據(jù)庫列于下拉菜單:


以下為引用的內(nèi)容:
<%
Dim srv
Dim objDB
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
Set objDB = Server.CreateObject("SQLDMO.Database")
%>
<SELECT name="fdatabase">

<%
For Each objDB In srv.Databases
If objDB.SystemObject = False Then
%>
<OPTION><%=objDB.Name%></OPTION>
<%
End If
Next
%>
</SELECT>


SQLDMO.BackupDevice

列出服務(wù)器上安裝的備份裝置。我建議使用備份裝置來備份數(shù)據(jù)庫。因?yàn)檫@樣可以使用SQL-DMO的校驗(yàn)功能來校驗(yàn)備份情況。下面的代碼列出服務(wù)器上的備份裝置:


以下為引用的內(nèi)容:
<%
Dim srv
Dim objDevice
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
Set objDevice = Server.CreateObject("SQLDMO.BackupDevice")

For Each objDevice In srv.BackupDevices
Response.Write objDevice.Name "<BR>"
Next
%>

SQLDMO.Backup

這就是我們要用到的備份核心對(duì)象。它有許多屬性,讓我們作到與企業(yè)版SQL管理器一樣水平的備份。先討論一下本文示例用到的屬性。

BackupSetName - 備份文件名。

Database - 要備份的數(shù)據(jù)庫。

Action - 全部或增量備份。還有其他選項(xiàng),不過示例中只用到這二個(gè)。

BackupSetDescription - 備份說明。

Files - 文件備份選項(xiàng)。標(biāo)明備份文件的路徑和名字,如:C:/pubs.bak。使用文件備份時(shí),下面的備份裝置名要設(shè)置為空。

Devices - 服務(wù)器上的備份裝置。如果使用備份裝置,上面的文件備份選項(xiàng)要設(shè)置為空。

TruncateLog - 備份日志選項(xiàng)。其選項(xiàng)有:

NoLog - 不備份交易日志。

NoTruncate - 備份交易日志。日志里提供時(shí)間標(biāo)記。

Truncate - 備份交易日志,但不保留交易紀(jì)錄。

Initialize - 如設(shè)置為真(True),該備份裝置將取代其他備份媒介而成為首選。

以下是示例中的backup.asp文件:

以下為引用的內(nèi)容:
<%@ Language=VBScript %>
<HTML>
<BODY>
<!--contains all the login information -->
<!--#include file=login.asp -->
<%
Dim objBackup
'創(chuàng)建備份對(duì)象
set objBackup = Server.CreateObject("SQLDMO.Backup")
'設(shè)置屬性
objBackup.BackupSetName = Request("fname")
objBackup.Database = Request("fdatabase")
objBackup.Action = Request("fAction")
objBackup.BackupSetDescription = Request("fdescription")
objBackup.Files = Request("fbackupfile")
objBackup.Devices = Request("fdevice")
objBackup.TruncateLog = Request("flog")
objBackup.Initialize = Request("finit")
'備份數(shù)據(jù)庫
objBackup.SQLBackup srv
'斷開與服務(wù)器的連接
srv.disconnect
'釋放
set srv = nothing
set objBackup = Nothing
%>
<P>
The backup was started, use the <A HREF="devices.asp">verify</A>
option to see if it completed successfully.
<A HREF="default.asp">Click here</A> to return.
</P>
</BODY>
</HTML>

備份校驗(yàn)

如果用VB或C 編程,可以用事件觸發(fā)來校驗(yàn)備份過程,但在ASP中不行。我們用SQLDMO.BackupDevice對(duì)象的ReadBackupHeader方法來確認(rèn)備份是否成功。

下面是verify.asp文件代碼,它列出備份裝置名字并提供最近備份的有關(guān)信息。

以下為引用的內(nèi)容:
<%@ Language=VBScript %>
<HTML>
<BODY>
<!--Login information -->
<!--#include file=login.asp-->
<P>
<%
Dim objDevice
Dim objResults
Dim iCount
Dim xCount
'創(chuàng)建備份裝置對(duì)象
Set objDevice = Server.CreateObject("SQLDMO.BackupDevice")
'循環(huán)直到找到匹配的裝置
For Each objDevice In srv.BackupDevices
If objDevice.Name = Request("fname") Then
'找到匹配裝置,開始讀取結(jié)果
Set objResults = objDevice.ReadBackupHeader
For iCount = 1 To objResults.Rows
For xCount = 1 To objResults.Columns%>
<B><%=objResults.ColumnName(xcount)%></B>:
<%=objResults.GetColumnString(icount,xcount)%><br>
<%Next %>
<HR>
<%Next %>
<%End If%>
<%Next%>
<%
srv.Disconnect
set srv = nothing
set objDevice = nothing
set objResults = nothing
%>
</BODY>
</HTML>

ReadBackupHeader方法返回QueryResults對(duì)象。用其Rows屬性可以得到備份的紀(jì)錄數(shù)。然后對(duì)每行紀(jì)錄作列信息搜索。

其他功能

SQL-DMO還提供遠(yuǎn)程備份和恢復(fù)功能。本文沒有涉及數(shù)據(jù)庫恢復(fù),但SQL-DMO有很強(qiáng)的恢復(fù)功能。

分享:基礎(chǔ)開發(fā)入門級(jí):JSP與ASP的比較
從微軟推出了ASP(ActiveServerPage)后,它以其強(qiáng)大的功能,簡單易學(xué)的特點(diǎn)而受到廣大WEB開發(fā)人員的喜歡。但是它卻有微軟產(chǎn)品的通病,只能在Windows平臺(tái)下使用,雖然它可以通過增加控件而在LINUX

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天津市| 普兰县| 朝阳区| 武邑县| 军事| 凤山县| 云和县| 辽宁省| 买车| 酉阳| 阿克苏市| 四会市| 阳朔县| 松潘县| 三明市| 建瓯市| 凤翔县| 博罗县| 汾阳市| 阳东县| 五河县| 邹平县| 华阴市| 松原市| 临泉县| 溧阳市| 沈丘县| 札达县| 四川省| 县级市| 锦州市| 葫芦岛市| 潜山县| 邢台市| 浦东新区| 凤翔县| 安龙县| 海伦市| 万年县| 山东省| 四平市|